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