有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在中断后在Quarz调度程序中启动单个作业

我想问一下,在我打断他之后,是否可以开始一份工作。(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) {
            }

谢谢你的帮助 问候


共 (1) 个答案

  1. # 1 楼答案

    这应该是完全可能的。请注意,通过中断Quartz作业(通过调用interrupt(jobKey)方法),您只会提示该作业完成它正在做的任何事情,并提前完成。如果作业忽略了中断请求,那么它将继续执行。为了能够接收中断请求,作业必须实现org。石英InterruptableJob接口,具有调度器调用的单个方法。在该方法中,您通常会设置某种中断标志(例如,作业类中的AtomicBoolean字段),在execute方法中,您会在安全中断作业的阶段(例如,在独立的DB事务之间等)检查标志的值

    当您再次启动作业时,Quartz将分配并执行一个新的作业实例。您可能希望使用@DisallowConcurrentExecution对作业进行注释,以防止在您尝试再次启动作业时中断作业且作业未完成运行的情况。注释将阻止同一作业的两个并发作业执行(即同一作业类的不同作业实例)