Heroku /我是否被迫在这种情况下实施工人Dynos?

时间:2014-03-05 02:20:33

标签: events heroku akka playframework-2.2

我拥有Play 2.2应用程序。

我即将实现一个Akka EventBus能够在我的应用程序中管理我的各种域事件。 工作流程将是:

  • 在应用程序启动时(Global.scala),会定期调度Akka Actor,从数据库中检索当前未发布的事件。
  • 然后这个预定的演员将在Akka EventBus上发布这些事件。
  • 然后,各种特定订阅者将处理相关事件。

重要的一点是:我还在Heroku上拥有2个 Web Dynos,每个都运行应用程序。

因此,有两个缺点:

  • Akka EventBus正在严格处理他们自己的JVM(与dynos数量成比例的EventBus重复)。
  • n中每个dyno的一个应用程序启动,涉及n事件检索器(如上所述的预定角色)的存在。

两种典型的不受欢迎的情景都是:

  • Event1多次发布(自dyno启动一个应用程序以来)

  • 即使第一次发布Event1,每个Dyno上的每个EventBus也可能会多次处理它。

如何处理此案?

我是否被迫创建一个包含EventBus +事件处理程序的Worker Dyno,或者可能存在更简单的解决方案?

0 个答案:

没有答案