У меня есть приложение Java, которое использует библиотеку Quartz 2.2.2, и приложение развернуто на кластере Weblogic server 12.2.1.2.0.
Я хочу планировать работу каждые 5 минут и использовать 0 0 /5 * 1/1 *?* Выражение cron и код ниже.
String strDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").format(startAt.dateValue()); //new Date()
Date startDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(strDate);
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
JobKey jobKey = new JobKey(jobName);
job = JobBuilder.newJob(jobClass)
.withIdentity(jobKey.getName(), null)
.build();
String endDateVal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").format(endAt.dateValue());
Date endDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(endDateVal);
System.out.println("QuartzSchedulerSingleton : endDate " + endDate);
trigger = TriggerBuilder.newTrigger()
.withIdentity(jobKey.getName())
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionFireAndProceed())
.startAt(startDate)
.endAt(endDate)
.build();
trigger.getJobDataMap().putAsString("RequestId", new Long(requestId));
scheduler.scheduleJob(job, trigger);
Все записи в кварцевых таблицах происходят правильно, но иногда кварцевое задание не выполняется.то есть задание запускается и выполняется в течение пары раз и пропускает выполнение несколько раз.
Ниже приведено свойство Quartz.Я пытался увеличить количество потоков до 50 (org.quartz.threadPool.threadCount = 50), но это не помогло.
org.quartz.scheduler.instanceName=QuartzScheduler
org.quartz.scheduler.skipUpdateCheck=true
org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=15
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate
org.quartz.jobStore.useProperties=false
org.quartz.jobStore.dataSource=GenericScheduler
org.quartz.jobStore.tablePrefix=QUARTZ_
org.quartz.jobStore.isClustered=true
org.quartz.dataSource.GenericScheduler.jndiURL=jdbc/ocx_hcm
org.quartz.dataSource.GenericScheduler.java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
Нужна помощь в решении этой проблемы.
МногиеСпасибо, Джоти Ранджан