如何从数据库JDBCJobStore启动/停止Quartz调度程序

时间:2014-02-25 06:56:28

标签: java spring quartz-scheduler scheduler

我试图按以下方式停止我的计划程序

UPDATE QRTZ_TRIGGERS SET TRIGGER_STATE = 'PAUSED' where TRIGGER_NAME='triggerName'

但调度程序未停止并在crone expression.

中指定的时间触发

那么如何从数据库中启动或停止石英?

感谢。

2 个答案:

答案 0 :(得分:0)

我认为这不是一个好习惯,不要直接在你的代码中使用JobStore;结果可能会被忽视。

documentation

中明确说明了这一点
  

切勿在代码中直接使用JobStore实例。出于某种原因,许多人试图这样做。 JobStore用于Quartz本身的幕后使用。你必须告诉Quartz(通过配置)要使用哪个JobStore,但是你应该只使用代码中的Scheduler接口。

答案 1 :(得分:0)

我能够以两种方式做到这一点。我不确定这是否是一个好习惯。

1)通过分别从QRTZ_CRON_TRIGGERS(子表)和QRTZ_TRIGGERS表中删除与作业相关的行,作业将不再执行。我想我们也应该从QRTZ_JOB_DETAILS表中删除该行。但即使没有这样做,它对我也有用。

2)在QRTZ_TRIGGERS表中,有一个名为END_TIME的列。如果您在某个特定时间更新它(您可以使用https://www.epochconverter.com/来获取纪元时间),石英会在时机成熟时自动删除上述所有3个表中的行。

此解决方案适用于Quartz1。我认为它也适用于Quartz2。