使用Play同时运行Schedules Jobs!骨架

dig*_*nie 4 java playframework

我玩了!框架每30秒执行一次的作业:

@Every("30s")
public class MyJob extends Job { ... }
Run Code Online (Sandbox Code Playgroud)

这项工作做了一些事情,比如阅读电子邮件和写入数据库.但是,作业可能无法在30秒内完成.如果工作超过30秒的时间较长,我想杀人,试图启动,而原来的工作仍在进行后续作业.有没有办法做到这一点?甚至暂停后续工作,直到原来的工作完成?

Per*_*ega 10

据我所知,你不必杀掉这份工作.我创造的工作比每分钟都要运行,但在某些情况下它可能(可能)运行超过一分钟.

我做了一些测试,并且意识到我可能以错误的方式完成了它们,但Play不会启动Job的新实例(如果它已经在运行).一旦作业完成,它将在预期时间内运行下一个实例.就好像Play将Jobs视为"Singletons"一样,在给定时间只有一个给定类型的活动.

所以,不,你不需要杀死或检查任何东西.太棒了,不是吗?;)