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).

这样的工具