Jam*_*sev 8 java quartz-scheduler
给出Quartz作业和以下命令
boolean deleted = scheduler.deleteJob(event.getName(), "some group name")
Run Code Online (Sandbox Code Playgroud)
假设deleted回来false,据我所知,这意味着从JVM的角度来看,工作仍然存在.
有了这2个问题:
如果没有抛出异常,是否可以安全地假设找不到工作?什么会导致这个?这种情况发生的唯一方法不是首先删除作业吗?
我在用
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是否会成为处理事情的正确方法?我的推理是否正确?
boolean deleted;
try {
deleted = scheduler.deleteJob(event.getName(), "some group name");
if (!deleted) {
logger.warn("Quartz failed to delete the job!" + event.getName() + ". Job not found");
}
} catch (SchedulerException e) {
logger.error("There is an internal Scheduler error", e);
}
Run Code Online (Sandbox Code Playgroud)
如果您需要在作业运行时删除它,请确保您的作业实现了org.quartz.InterruptableJob.然后你可以打电话org.quartz.Scheduler.interrupt(JobKey)在它运行时停止它.
在SchedulerException之后尝试为一般Exception添加一个catch(它是更好的异常处理,如果你不确定它可能会得到的错误它会帮助你).
另外请记住,在构建石英作业时,可以使用jobBuilder.storeDurably(false),这将导致在不再有与之关联的活动触发器时自动删除石英作业.
| 归档时间: |
|
| 查看次数: |
8142 次 |
| 最近记录: |