1

我有戏!运行一定数量的作业的应用程序。但问题是,当我们需要更高的服务器负载时,我们会乘以实例的数量,因此我们的作业会在每个 Play! 服务器。
所以我需要分发这些 cron,但我真的不知道从哪里开始寻找。
我想我需要与Kue等效的东西(即用于 Node.JS),但对 Java 一无所知,对 Play 更不了解!

你有什么建议 ?

4

2 回答 2

4

您可以尝试使用Akka Cluster Singleton模式。然后,您可以通过调度程序向该参与者发送消息,您就完成了!

请记住,Play 是建立在 Akka 之上的。那是强大的!

于 2013-06-19T14:26:52.383 回答
0

Akka 可能是一种更简洁的解决方案,但一种快速的方法是仅在您的一个实例中将“instance.id=1”或类似的添加到您的 application.conf 中。然后你可以在 Global 对象中检查这个并开始你的工作,

public void onStart(...)
{
     Integer instanceId = Play.application().configuration().getInt("instance.id");
     if (instanceId == 1)
     {
          ... start jobs ...
     }
}
于 2013-06-19T20:49:52.047 回答