sat*_*tya 5 java spring quartz-scheduler
我正在使用带有Quartz的spring,并且每个东西都工作正常但是之前的一些cofigured触发器也被执行了,因为它们存储在Quartz表中.我们可以手动删除所有未配置的触发器并执行应用程序,但这不是一个好习惯.我想通过spring + quartz属性或其他解决方案删除所有触发器.
当我在spring配置文件中配置了3个触发器时
<property name="triggers">
<list>
<ref bean="FirstTrigger" />
<ref bean="secondTrigger" />
<ref bean="ThirdTrigger"/>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)
当服务器启动时,所有触发器都存储在Quartz表中,并带有相应的cron触发器和作业详细信息.如果我删除了我的配置中的任何触发器,例如我在上面删除了第二个触发器,但它没有从Quartz表中删除.那时DBtrigger(删除触发器)也执行了.
在spring + Quartz集成中,是否有任何属性来处理这个问题,还是我们需要为此问题做些其他事情?
提前致谢.
如果您将触发器存储在数据库中(假设您的触发器是基于 cron 的),您可以简单地删除这样的记录:
DELETE FROM QRTZ_CRON_TRIGGERS WHERE SCHED_NAME='scheduler' and TRIGGER_NAME='myTrigger' and TRIGGER_GROUP='DEFAULT';
DELETE FROM QRTZ_TRIGGERS WHERE SCHED_NAME='scheduler' and TRIGGER_NAME='myTrigger' and TRIGGER_GROUP='DEFAULT';
Run Code Online (Sandbox Code Playgroud)
您也可以考虑查看其他 Quartz DB 表以查找与您的工作相关的剩余部分。
您可以使用Quartz API访问 Quartz Scheduler、作业、触发器等。
看看这个Quartz CookBook,你会发现如何列出所有定义的触发器等。也许你应该使用这个 API 删除不必要的触发器。
| 归档时间: |
|
| 查看次数: |
12498 次 |
| 最近记录: |