用户关闭 Eclipse 应用程序时如何完成作业

ka3*_*3ak 5 java eclipse jobs

我使用 org.eclipse.core.runtime.jobs.Job 执行删除数据的存储过程并根据新数据更新用户界面。因此,即使用户关闭 Eclipse 应用程序,这项工作也将完成,这一点很重要。

final Job execStoredProcJob = new Job(taskName) {
    protected IStatus run(IProgressMonitor monitor) {
        monitor.beginTask(taskName, 
// execute stored procedure
// update user interface
        monitor.done();
        return Status.OK_STATUS;
    }
};

execStoredProcJob.schedule();
Run Code Online (Sandbox Code Playgroud)

当我在作业仍在运行时关闭 eclipse 应用程序时,它似乎会终止作业。用户关闭 eclipse 应用程序后如何完成工作?是否可以?

Enr*_*ico 2

我想你可能想看看调度规则 http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html

execStoredProcJob.setRule([Workspace root]);
execStoredProcJob.schedule();
Run Code Online (Sandbox Code Playgroud)

project.getWorkspace().getRoot()如果您有对项目的引用,则可以获取[工作空间根目录] 。

这将阻止所有需要相同规则的作业。关闭工作就是其中之一。

还可以:

IWorkspace myWorkspace = org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
Run Code Online (Sandbox Code Playgroud)

然后使用:

myWorkspace.getRoot();
Run Code Online (Sandbox Code Playgroud)