在群集设置中播放2个Java预定的Akka作业

时间:2012-10-18 07:50:47

标签: scheduled-tasks playframework-2.0 akka

我在Play 2.0.4开发设置上运行了一些Akka作业。对于生产,应用程序将部署到集群设置,我需要确保一些预定的作业不会发生在并行中 - 例如导入仅在单个节点中发生,并且在完成之前不会启动新的导入。

有任何建议或指示吗?或者Akka错误的工具呢?

2 个答案:

答案 0 :(得分:1)

我的猜测是你应该将“前端”与“后端”分开。让群集Play应用程序处理Web请求并构建另一个负责后台作业的应用程序。

也可以调整Akka配置,以便始终在单个群集节点上查找处理后台作业的Actor。但是,如果您需要一种简单的方式与这个演员进行交流,这可能只会有意义。有关详细信息,请查看Akka documentation on Remoting

答案 1 :(得分:1)

这是一个合适的Akka集群吗?

您可以使用群集单例来强制执行仅一次

的作业

http://doc.akka.io/docs/akka/snapshot/contrib/cluster-singleton.html

如果你的工作负担对于一个演员来说太多了,那么你将仍然想要使用一个集群单身人士......但是把他当作一个主人,让他把工作交给奴隶来做实际的工作。如果你只保留1个主服务器和N个服务器,你可以确保只做一次这个工作。