java - Quartz Scheduler 在已经存在作业时添加作业
问题描述
我正在尝试根据从数据库获得的一些数据添加作业。我在日志中收到错误
Unable to store job with name.... job already exists
在尝试添加我的最终工作时。现在的问题是我每 5 分钟执行一次此操作,我必须这样做,所以我知道该作业存在并且正在运行。我试图“检测”它
JobDetail job = new JobDetail();
job.setGroup(GROUP_NAME);
job.setName(REPORT + reports.getName());
job.setJobClass(GenericJob.class);
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("format",reports.getFormat());
job.setJobDataMap(jobDataMap);
CronTrigger trigger = new CronTrigger();
trigger.setName("trigger for: " + job.getName());
trigger.setCronExpression(reports.getSchedule());
trigger.setEndTime(reports.getEndDate().getTime());
trigger.setStartTime(reports.getStartDate().getTime());
trigger.setGroup(GROUP_NAME);
List<JobExecutionContext> executedJobs = new LinkedList<JobExecutionContext>();
List<JobDetail> jobDetails = new LinkedList<JobDetail>();
List jobList = scheduler.getCurrentlyExecutingJobs();
for (Object o : jobList) {
JobExecutionContext context = (JobExecutionContext) o;
Date previous = context.getPreviousFireTime();
if (previous == null) continue; //your job has not been executed yet
executedJobs.add(context); //there's your list!
}
for (JobExecutionContext j: executedJobs){
jobDetails.add(j.getJobDetail());
}
if (!jobDetails.contains(job)) {
scheduler.scheduleJob(job, trigger);
}
但是我的 scheduler.getCurrentlyExecutingJobs() 没有看到有问题的工作。只有当我在调试中停止代码约 2 分钟时,我才能看到它。另外我使用的是quartz 1.8.6,因为我必须能够使用Java 6 的服务器上的项目,这就是我不能使用checkExists() 方法的原因。谁能帮我理解似乎是什么问题?
解决方案
推荐阅读
- reactjs - AWS Amplify federatedSignIn 错误:无法读取未定义的属性“_config”
- python - 嗨,一直在研究 geopy,但我遇到了这个“关键错误“组””,我找不到解决方案,我是新手,所以请帮忙
- ios - <_TtGCs26_SwiftDeferredNSDictionarySSP__$ 0x281131d70> setValue:forUndefinedKey:]:此类不符合键状态的键值编码。
- extjs6 - 显示搜索结果时 Ext js 版本 6 中的性能问题
- linux - .NET Core 和 Kestrel - 部署在 Linux 上的 ASP.NET CORE Web api 应用程序的反向代理 Web 服务器应该是什么?
- javascript - 如何正确地将 base64 编码文档从 express 发送到客户端并启动下载?
- c# - 即使成功采用路径,图像也没有显示 - MVVM WPF
- vue.js - npm install 失败,可能是网络问题?
- azure-functions - Azure function Process.Start() C# as different user got Access denied error
- react-native - 如何在 react-native 中处理多个 set-cookie 值?