我已经使用 cron4j 开始一项任务,每天在特定条件下(他们还没有完成他们的工作)使用 Stripes ActionBean 向人们发送电子邮件。
我在 MySQL 中保存了任务 ID。
然而,我似乎无法阻止它。 我尝试使用 id 来取消安排任务,但它不起作用。 我只能通过确保条件始终为假来阻止它。
如何使用不同的调度程序实例停止任务(因为它使用 servlet 和 actionbeans,我无法将调度程序实例持久保存在数据库中)?它甚至可行吗?
最佳答案
我知道这是一篇很老的帖子,抱歉,最近才开始看 cron4j。
您很可能没有获得相同的调度程序实例。 Scheduler 有一个 getGUID 方法,在您实例化它时发出消息,然后在您尝试取消计划时再次发出消息。如果它们不相同,那就是问题所在。
我现在正在一个网站上实现 cron4j,并决定使用单例模式来确保任何时候我请求调度程序时我都会加载唯一的实例。到目前为止,我可以毫无问题地安排时间。
关于java - cron4j descheduling servlet/actionbean 上的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799280/