java quartz 跳过_Java Quartz计划作业-禁止同时执行作业
我正在使用Quartz Job執(zhí)行特定任務(wù)。
我也在我的Main應(yīng)用程序類中安排它的執(zhí)行,而我試圖完成的工作是不允許同時(shí)執(zhí)行此作業(yè)的實(shí)例。
因此,調(diào)度程序僅應(yīng)在其先前實(shí)例完成后才執(zhí)行作業(yè)。
這是我的工作班級(jí):
public class MainJob implements Job {
static Logger log = Logger.getLogger(MainJob.class.getName());
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
GlobalConfig cfg = new GlobalConfig();
ProcessDicomFiles processDicomFiles = new ProcessDicomFiles();
ProcessPdfReportFiles processPdf = new ProcessPdfReportFiles();
try {
log.info("1. ---- SCHEDULED JOB -- setStudiesReadyToProcess");
processDicomFiles.setStudiesReadyToProcess();
log.info("2. ---- SCHEDULED JOB --- distributeToStudies");
processDicomFiles.distributeToStudies(cfg.getAssocDir());
...
//process any incoming PDF file
log.info("11. ---- SCHEDULED JOB --- processPdfFolder");
processPdf.processPdfFolder();
} catch (Exception ex) {
Logger.getLogger(FXMLDocumentController.class.getName()).log(Level.ERROR, null, ex);
}
log.info(">>>>>>>>>>> Scheduled Job has ended .... <<<<<<<<<<<<<<<<<<<
}
}
因此,在應(yīng)用程序的主類中,我正在啟動(dòng)調(diào)度程序:
...
//start Scheduler
try {
startScheduler();
} catch (SchedulerException ex) {
log.log(Level.INFO, null, ex);
}
...
public void startScheduler () throws SchedulerException {
//Creating scheduler factory and scheduler
factory = new StdSchedulerFactory();
scheduler = factory.getScheduler();
schedulerTimeWindow = config.getSchedulerTimeWindow();
JobDetailImpl jobDetail = new JobDetailImpl();
jobDetail.setName("First Job");
jobDetail.setJobClass(MainJob.class);
SimpleTriggerImpl simpleTrigger = new SimpleTriggerImpl();
simpleTrigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
simpleTrigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
simpleTrigger.setRepeatInterval(schedulerTimeWindow);
simpleTrigger.setName("FirstTrigger");
//Start scheduler
scheduler.start();
scheduler.scheduleJob(jobDetail,simpleTrigger);
}
如果另一個(gè)實(shí)例仍在運(yùn)行,我想阻止調(diào)度程序啟動(dòng)第二個(gè)MainJob實(shí)例…
總結(jié)
以上是生活随笔為你收集整理的java quartz 跳过_Java Quartz计划作业-禁止同时执行作业的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 和 Centos 的一点差
- 下一篇: Java容器坐标起点_Java的屏幕坐标