【发布时间】:2013-08-18 23:08:22
【问题描述】:
我正在尝试以编程方式停止 PlayFramework 中正在运行的作业。当作业运行时,我保存它在启动时返回的“承诺”对象。这个对象有一个“取消”方法,应该取消计划的作业或停止现有的作业,但它似乎没有做任何事情。
还有什么其他方法可以停止正在运行的作业?
【问题讨论】:
标签: asynchronous interrupt playframework-1.x jobs
我正在尝试以编程方式停止 PlayFramework 中正在运行的作业。当作业运行时,我保存它在启动时返回的“承诺”对象。这个对象有一个“取消”方法,应该取消计划的作业或停止现有的作业,但它似乎没有做任何事情。
还有什么其他方法可以停止正在运行的作业?
【问题讨论】:
标签: asynchronous interrupt playframework-1.x jobs
我认为您需要自己实施有序取消。 cancel 不仅会结束线程的执行,因为这可能会导致不希望的结果。解决方案也类似,Thread.stop() 已被弃用,而应使用Thread.interrupt()。
检查作业是否偶尔被取消。如果您在循环中运行大量计算,请检查它是否仍应在开始时继续运行。您甚至可以通过这种方式返回部分结果。
【讨论】: