Multithreading 播放/Akka-如果我的计划任务在关机时正在进行,会发生什么情况?
我正在用Akka使用Runnable界面安排一个长时间运行的任务,如下所示:Multithreading 播放/Akka-如果我的计划任务在关机时正在进行,会发生什么情况?,multithreading,scala,playframework,playframework-2.0,akka,Multithreading,Scala,Playframework,Playframework 2.0,Akka,我正在用Akka使用Runnable界面安排一个长时间运行的任务,如下所示: val myTask = system.scheduler.schedule(initialDelay, interval, new MyRunnable()) 播放关闭时线程会发生什么情况?我可以看到runnable中的代码停止执行,但我不清楚线程在什么时候被中断,以及如何在runnable中钩住这个事件。我曾尝试在runnable中捕获InterruptedException(或任何其他),但从未抛出异常。优雅地
val myTask = system.scheduler.schedule(initialDelay, interval, new MyRunnable())
播放关闭时线程会发生什么情况?我可以看到runnable中的代码停止执行,但我不清楚线程在什么时候被中断,以及如何在runnable中钩住这个事件。我曾尝试在runnable中捕获InterruptedException(或任何其他),但从未抛出异常。优雅地取消线程的最佳方式是什么?我可以对我的任务调用cancel,但这只会取消下一次计划的执行。我曾考虑将lifecycle对象传递给MyRunnable,以便它可以创建一个停止钩子,但我不确定这是最好的方法。只是好奇,但为什么你要明确地安排任务,而不是让Akka为你处理所有这些?我认为这是不可能的。