【发布时间】:2023-04-02 21:29:01
【问题描述】:
我有戏!运行一定数量的作业的应用程序。但问题是,当我们需要更高的服务器负载时,我们会乘以实例的数量,因此我们的作业会在每个 Play!服务器。
所以我需要分发这些 cron,但我真的不知道从哪里开始寻找。
我想我需要相当于Kue(即用于Node.JS),但对Java一无所知,更不用说Play了!
你有什么建议吗?
【问题讨论】:
标签: playframework playframework-2.1 jobs
我有戏!运行一定数量的作业的应用程序。但问题是,当我们需要更高的服务器负载时,我们会乘以实例的数量,因此我们的作业会在每个 Play!服务器。
所以我需要分发这些 cron,但我真的不知道从哪里开始寻找。
我想我需要相当于Kue(即用于Node.JS),但对Java一无所知,更不用说Play了!
你有什么建议吗?
【问题讨论】:
标签: playframework playframework-2.1 jobs
您可以尝试使用Akka Cluster Singleton 模式。然后,您可以通过 Scheduler 向该演员发送消息,您就完成了!
请记住,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 ...
}
}
【讨论】: