我的工作将持续访问数据库并计算表中的行数。当数字达到某个阈值时,作业必须停止检查表并触发一些新作业。现在,我正在尝试使用InterruptableJob
来执行此操作,但我不确定如何删除第一个作业。那就是:
(1)每10秒触发一次Job1。访问SQL数据库并计算给定表中的行数。
(2)当有5行时,Job1将Interrupt()
。
(3)现在Job2需要启动,Job1必须停止运行。如何删除Job1?我知道scheduler.DeleteJob()
,但我不确定何时何地调用它,因为我无法更改scheduler
类中的Job1
。
另外,如何在此时触发Job2开始运行?我已经阅读过关于JobChainingJobListener
的内容,但是可以看到here,我也遇到了启动链接作业的问题。
为了澄清,目前,Job2只是打印到控制台。
答案 0 :(得分:1)
现在Job2需要启动,Job1必须停止运行。我该如何删除 作业1?我知道scheduler.DeleteJob(),但我不知道何时何地 叫它,因为我无法在Job1的类中更改调度程序
最后一句话其实不正确。从IJobExecutionContext
传递到您的作业,您可以轻松访问调度程序,然后从调度程序中删除当前作业,并在需要时安排另一个作业。