JVM 终止后执行作业
Execute jobs after JVM termination
是否可以在 JVM 终止后在 JVM 中安排作业执行?
在我的应用程序中,用户可以选择接收收件箱中任何新电子邮件的通知。我使用 Quartz 完成了这项工作,EmailChecker
作业计划每 45 秒执行一次。
public void checkInbox() throws SchedulerException
{
JobDetail job = JobBuilder.newJob(EmailChecker.class)
.withIdentity("emailJob", "jobGroup").build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("emailTrigger", "jobGroup")
.withSchedule(CronScheduleBuilder.cronSchedule("0/45 * * * * ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
一切正常,但仅当 JVM 为 运行 时。一旦退出,将不再发送通知。
该应用程序是桌面应用程序,因此不会一直 运行。如果此功能仅在 JVM 中运行,则该功能将毫无用处,因为用户还可以实时查看他们的收件箱,因此通知将是多余的。
不在 JVM 内部,因为一旦 JVM 终止,它就不会 运行 执行作业。您可以使用像 cron or at to schedule a new JVM. If you can leave the JVM executing, then you can use the JVM to schedule the jobs (you could possibly use something like quartz-scheduler).
这样的工具
是否可以在 JVM 终止后在 JVM 中安排作业执行?
在我的应用程序中,用户可以选择接收收件箱中任何新电子邮件的通知。我使用 Quartz 完成了这项工作,EmailChecker
作业计划每 45 秒执行一次。
public void checkInbox() throws SchedulerException
{
JobDetail job = JobBuilder.newJob(EmailChecker.class)
.withIdentity("emailJob", "jobGroup").build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("emailTrigger", "jobGroup")
.withSchedule(CronScheduleBuilder.cronSchedule("0/45 * * * * ?"))
.build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
一切正常,但仅当 JVM 为 运行 时。一旦退出,将不再发送通知。
该应用程序是桌面应用程序,因此不会一直 运行。如果此功能仅在 JVM 中运行,则该功能将毫无用处,因为用户还可以实时查看他们的收件箱,因此通知将是多余的。
不在 JVM 内部,因为一旦 JVM 终止,它就不会 运行 执行作业。您可以使用像 cron or at to schedule a new JVM. If you can leave the JVM executing, then you can use the JVM to schedule the jobs (you could possibly use something like quartz-scheduler).
这样的工具