在我的应用程序中,我使用石英来安排一些作业在 Glassfish 上的 Java 应用程序中运行。有时当我重新部署我的应用程序时,我忘记关闭我的调度程序,并且在部署新版本的应用程序后无法停止它们。所以,问题是如何在应用程序被取消部署后停止/杀死石英的线程。
这是我添加工作的代码:
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched sched = sf.getScheduler();
// 1: EMS2ELC JOB /////////////
String EMS2ELCScheduleEx = "0 30 0 * * ?";
job = new JobDetail("EMS2ELCJob", "WebServicesGroup", EMS2ELCJob.class);
trigger = new CronTrigger("EMSTrigger", "WebServicesGroup", "EMS2ELCJob", "WebServicesGroup", EMS2ELCScheduleEx, TimeZone.getTimeZone("America/Los_Angeles"));
sched.addJob(job, true);
ft = sched.scheduleJob(trigger);
log.info("SchedulerController: " + job.getFullName() + " has been scheduled to run at: " + ft + " and repeat based on expression: " + trigger.getCronExpression());