java - 中断后在 Quartz Scheduler 中启动单个作业

标签 java quartz-scheduler interrupt scheduler restart

我想问一下,在我打断他之后是否可以开始一项工作。 (10 秒后)。

或者有人知道如何在 Quarz Scheduler 中重新启动单个作业吗?

中断代码:

  for(int i=0; i < 2; i++) {
            try {
                Thread.sleep(7000L); 
                // tell the scheduler to interrupt our job
                sched.interrupt(job.getKey());
            } catch (Exception e) {
            }

感谢您的帮助 问候

最佳答案

这应该是完全可能的。请注意,通过中断 Quartz 作业(通过调用 Interrupt(jobKey) 方法),您只是给作业一个提示,让其完成正在执行的任何操作并提前完成。如果作业忽略中断请求,那么它将继续执行。为了能够接收中断请求,作业必须使用调度程序调用的单个方法来实现 org.quartz.InterruptableJob 接口(interface)。在该方法中,您通常会设置某种中断标志(例如作业类中的 AtomicBoolean 字段),并且在执行方法中,您会在可以安全中断作业的阶段检查标志的值(例如,在独立的数据库事务之间等) .)

当你再次启 Action 业时,Quartz将分配并执行一个新的作业实例。您可能需要使用 @DisallowConcurrentExecution 注释您的作业,以防止出现以下情况:您中断作业并且在您尝试再次启 Action 业时作业尚未完成运行。该注释将防止同一作业的两个并发作业执行(即同一作业类的不同作业实例)。

关于java - 中断后在 Quartz Scheduler 中启动单个作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906364/

相关文章:

java - 在 javax.microedition.lcdui.CustomItem (MIDP) 上选择的 lIstener

grails - 更改Quartz作业创建的默认位置

java - Quartz调度器不正确的调度时间

java - Quartz 调度程序 Cron 触发器

Python,如何中途停止脚本?

java - 为什么我不能以这种方式访问​​ Java 中的 protected 变量?

java - 减少 JFrame 绘画中的延迟

linux-kernel - 中断处理程序时间统计

c - 8051 c编程,中断问题

java - 使用 Python/C++/Java 将实时视频流式传输到网页的最佳方法