我有一个关于cron工作的场景,请看下面:
import play.jobs.Job;
import play.jobs.On;
@On("1 * * * * ?")
public class TestCron2 extends Job {
@Override
public void doJob() {
try {
System.out.println("TestCron2 is calling");
while(true){
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
所以这项工作意味着每1分钟运行一次,但在第一次打印消息TestCron2 is calling
时,它会进入无限循环。所以它无法出来。因此,下一分钟它不会打电话,因为第一次尝试本身尚未完成,也不会完成。
有人可以请您澄清以下事项:
这里我将无限while
循环指向无限循环
情况,但在实际情况下我的cron工作没有完成他们的
因某种未知原因而被分配到工作。所以它不会打电话给下一个
时间间隔,但它并不总是发生。它发生在一个
一个月只有一两次。
解决方案是我需要重新启动服务器并再次启动它 工作正常。
但是有没有办法在不重启服务器的情况下重启cron作业? 我希望我能够正确解释这个问题,如果没有,请告诉我。非常感谢任何帮助。