当前位置: 首页 > 面试题库 >

如何中断或停止当前正在运行的石英作业?

卫鸿朗
2023-03-14
问题内容

我有一些任务是在Java Quartz
Jobs的帮助下执行的,但是我需要在某些情况下在代码中停止某些任务。我读到这可以通过InterruptableJob完成。但是我不知道我应该怎么做?


问题答案:

您需要将您的工作写成InterruptableJob的实现。要中断此作业,您需要Scheduler的句柄,然后调用interrupt(jobKey<<job name & job group>>)

请查看上述类的@javadoc,石英发行版也包含此示例(example7)。



 类似资料:
  • 问题内容: 我正在尝试制作一个简单的计时器,该计时器在指定的秒数后发出提示音。我设法使其正常工作,但是TimerTask在蜂鸣声后继续运行。现在我停止执行吗?这是我的代码: 问题答案: 您需要通过调用以下方法来取消计时器 这将取消任务,因此可以执行以下操作:

  • 在浏览了spring文档之后,在我的代码中。 我面临的问题是,有时工作的终止是发生在预期和其他时间终止工作是不发生的。实际上,每次调用joboperator上的stop时,它都在更新BATCH_JOB_EXECUTION表。当终止成功发生时,作业的状态将通过杀死批处理过程中的jobExecution更新为STOPPED。其他失败的时候,它会完成批处理的其他不同流,并将BATCH_JOB_EXECU

  • 问题内容: 我有一个多线程的Java项目,我想添加一个方法stop()来停止所有正在运行的线程。问题在于该项目是由其他人开发的,而我不熟悉它如何实现多个线程。 我知道的是,一旦项目开始,就会调用许多线程,并且它们将永远运行。有没有办法找到所有正在运行的线程并停止它们?我进行了很多搜索,找到了如何获取正在运行的线程的列表: 接下来要停止所有正在运行的线程该怎么办? 我想停止这些线程的原因是,我需要将

  • 我之所以要停止这些线程,是因为我需要将这个项目作为一个捆绑包部署到OSGi容器中。一旦包启动,多个线程将永远运行。因此,我需要实现一个destroy()方法来停止所有线程,以控制包的生命周期。 怎么样

  • 如果一项工作没有在10分钟内完成,在接下来的10分钟内另一项工作将开始。 我想要的是:下一个作业(每10分钟后)应该启动,只有在前一个作业已经完成运行的情况下。有什么办法可以做到吗?