我玩了!运行一定数量工作的应用程序。但问题是,当我们在服务器上需要更高的负载时,我们将实例的数量相乘,因此我们的工作在每次播放时执行!服务器。
所以我需要分发那些crons,但我真的不知道从哪里开始寻找
我想我需要相当于Kue(适用于Node.JS),但对Java一无所知,对Play来说更是如此!
你有什么建议吗?
答案 0 :(得分:4)
您可以尝试使用Akka Cluster Singleton模式。然后,您可以通过Scheduler向该演员发送消息,您就完成了!
请记住,Play是建立在Akka之上的。那很厉害!
答案 1 :(得分:0)
Akka可能是一个更干净的解决方案,但快速的方法是只在您的application.conf中为您的一个实例添加“instance.id = 1”或类似内容。然后你可以在Global对象中检查这个并启动你的工作,
public void onStart(...)
{
Integer instanceId = Play.application().configuration().getInt("instance.id");
if (instanceId == 1)
{
... start jobs ...
}
}