繁体   English   中英

Heroku中的Akka调度与Play 2框架

[英]Akka Scheduling in Heroku with Play 2 Framework

我无法让Akka调度方法在Heroku中正常工作。 它在本地工作正常,并打印出“Heartbeat”到日志。

这是有问题的文件: https//github.com/magnusart/actor-test/blob/master/app/Global.scala和下面的代码段。

override def onStart(app: Application) {
    Logger.debug("Starting application")
    Akka.system(app).scheduler.schedule(2 seconds, 10 seconds) {
      Logger.debug("Heartbeat")
    }
  }

完整的应用程序在此处(为此目的而隔离,也在actor-test.herokuapp.com上)。 https://github.com/magnusart/actor-test

启动后发生的事情是我在日志中看到Starting application然后在此之后我没有看到任何进一步的内容:

2012-05-26T16:29:40+00:00 heroku[web.1]: Starting process with command `target/start -Dhttp.port=43943 -Xmx384m -Xss512k -XX:+UseCompressedOops`
2012-05-26T16:29:41+00:00 app[web.1]: Play server process ID is 3
2012-05-26T16:29:42+00:00 app[web.1]: [debug] application - Starting application
2012-05-26T16:29:42+00:00 app[web.1]: [info] play - Starting application default Akka system.
2012-05-26T16:29:42+00:00 app[web.1]: [info] play - Application started (Prod)
2012-05-26T16:29:42+00:00 app[web.1]: [info] play - Listening for HTTP on port 43943...

因此,预定的演员实际上似乎并没有开始(当然它本地就是这样)。 我在Heroku Cedar上。 我很感激任何暗示为什么这不起作用,我错过了什么?

BR Magnus Andersson


更新从我发现的,这似乎是Play 2中的一个错误(我正在运行2.0.1版)并且与Heroku无关。 我已经更新了Play 2 Lighthouse的相关信息。 这张票可以在这里找到: https//play.lighthouseapp.com/projects/82401-play-20/tickets/448-play-dist-ignores-loggerxml#ticket-448-5

问题似乎来自您的记录器设置,因为在您的Heartbeat中,您打印具有“调试”级别的消息。 AFAIK,Heroku以“生产”模式(=“播放开始”)运行您的Play应用程序,即日志级别设置为“info”,因此调试消息永远不会打印在Heroku上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM