1

我正在开发一个部署项目。我有一个用户界面,我通过 RPC 回调与服务器绑定了界面。我使用 SmartGWT 作为界面。

我的项目只是从路径下载战争文件,并将其部署到服务器。我也有一个计时器每 24 小时检查一次更新版本。我的问题是,如何防止我的程序同时运行两次?首先,我想禁用界面中的“执行”按钮,但是如果用户刷新页面,或者计时器和用户进程同时工作,这将无法正常工作。然后我想使用单例模式来解决这个问题。假设我的 FTP 类被调用,ftp.DownloadFile 方法将启动一个长时间运行的下载过程。如何确定下载进程或其他进程是否正在运行?当我已经有一个进程时,如何列出来自用户的请求?

4

1 回答 1

1

在下载过程开始时,您需要在服务器端存储一些符号(例如布尔标志,downloadInProgress=true)。然后在每次页面刷新后通过 RPC 调用获取该变量的值并根据它显示/隐藏 UI 组件。作为此变量的存储,您可以使用:

  • 数据库
  • 服务器端会话
  • 服务器端的所有状态都可用...

downloadInProgress下载完成后不要忘记将 false 分配给变量。

于 2013-07-29T16:22:58.783 回答