我有戏!运行一定数量的作业的应用程序。但问题是,当我们需要更高的服务器负载时,我们会乘以实例的数量,因此我们的作业会在每个 Play! 服务器。
所以我需要分发这些 cron,但我真的不知道从哪里开始寻找。
我想我需要与Kue等效的东西(即用于 Node.JS),但对 Java 一无所知,对 Play 更不了解!
你有什么建议 ?
我有戏!运行一定数量的作业的应用程序。但问题是,当我们需要更高的服务器负载时,我们会乘以实例的数量,因此我们的作业会在每个 Play! 服务器。
所以我需要分发这些 cron,但我真的不知道从哪里开始寻找。
我想我需要与Kue等效的东西(即用于 Node.JS),但对 Java 一无所知,对 Play 更不了解!
你有什么建议 ?
您可以尝试使用Akka Cluster Singleton模式。然后,您可以通过调度程序向该参与者发送消息,您就完成了!
请记住,Play 是建立在 Akka 之上的。那是强大的!
Akka 可能是一种更简洁的解决方案,但一种快速的方法是仅在您的一个实例中将“instance.id=1”或类似的添加到您的 application.conf 中。然后你可以在 Global 对象中检查这个并开始你的工作,
public void onStart(...)
{
Integer instanceId = Play.application().configuration().getInt("instance.id");
if (instanceId == 1)
{
... start jobs ...
}
}