如果任何进程存在Java,则列出进程

时间:2013-07-29 13:57:35

标签: java gwt ftp

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

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

1 个答案:

答案 0 :(得分:1)

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

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

下载完成后,不要忘记为downloadInProgress变量指定false。