如何删除作业并使用新作业触发/替换?

时间:2014-07-02 20:37:36

标签: c# quartz-scheduler quartz.net

我的工作将持续访问数据库并计算表中的行数。当数字达到某个阈值时,作业必须停止检查表并触发一些新作业。现在,我正在尝试使用InterruptableJob来执行此操作,但我不确定如何删除第一个作业。那就是:

(1)每10秒触发一次Job1。访问SQL数据库并计算给定表中的行数。

(2)当有5行时,Job1将Interrupt()

(3)现在Job2需要启动,Job1必须停止运行。如何删除Job1?我知道scheduler.DeleteJob(),但我不确定何时何地调用它,因为我无法更改scheduler类中的Job1

另外,如何在此时触发Job2开始运行?我已经阅读过关于JobChainingJobListener的内容,但是可以看到here,我也遇到了启动链接作业的问题。

为了澄清,目前,Job2只是打印到控制台。

1 个答案:

答案 0 :(得分:1)

  

现在Job2需要启动,Job1必须停止运行。我该如何删除   作业1?我知道scheduler.DeleteJob(),但我不知道何时何地   叫它,因为我无法在Job1的类中更改调度程序

最后一句话其实不正确。从IJobExecutionContext传递到您的作业,您可以轻松访问调度程序,然后从调度程序中删除当前作业,并在需要时安排另一个作业。