【问题标题】:Quartz jobs hanging around in DB tables数据库表中的 Quartz 作业
【发布时间】:2013-04-16 00:32:45
【问题描述】:

我们使用 Quartz 2.1.6 在集群上进行作业调度,并将作业数据存储在 MySQL 数据库 (MySQL 5.1) 的 JDBC 作业存储中。

我们所有的 Quartz 配置(调度程序、作业、触发器)都是在启动时通过 Spring 完成的。我们将数据存储在数据库中以进行聚类。

问题:我们有几个作业被添加,然后从 Quartz 配置中删除。它们不再存在于配置中,但它们仍然存在于表中。我们如何摆脱它们?阅读 Quartz 文档,看来手动编辑表格是一件非常糟糕的事情。

我们似乎没有明确设置 JobDetail.setDurability(true),所以我不确定为什么这些作业和触发器会一直存在,但它们确实存在。

有人有答案吗?

【问题讨论】:

    标签: java mysql spring tomcat quartz-scheduler


    【解决方案1】:

    是的,除非您非常清楚自己在做什么,否则在数据库中执行此操作不是最好的主意。因此,请尝试以编程方式进行:

    ISchedulerFactory factory = new StdSchedulerFactory();
    IScheduler schedulder = factory.GetScheduler();
    
    schedulder.DeleteJob(JobName, JobGroup);
    

    【讨论】:

    • 是的,我们用裸 SQL 试了一下,果然有问题。有点像用钝刀进行脑部手术。最好使用提供的工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多