Я не могу заставить метод расписания 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 Магнус Андерссон
Обновление Судя по тому, что я обнаружил, это ошибка в 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
play start
. - person James Ward   schedule 27.05.2012