Akka Scheduling в Heroku с 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 Магнус Андерссон


Обновление Судя по тому, что я обнаружил, это ошибка в 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


person Magnus    schedule 26.05.2012    source источник
comment
Что именно не работает? Ты имеешь в виду, что на самом деле сердцебиение вообще не измеряется? Это может быть связано с динамическим холостым ходом, если вы используете только 1 динамометрический стенд.   -  person James Ward    schedule 26.05.2012
comment
Я не знаю, печатаются ли отладочные сообщения на Heroku, так как предполагается, что приложение будет запускаться в производственном режиме.   -  person ndeverge    schedule 27.05.2012
comment
Здравствуйте, извините за неполную информацию. Я обновил свой текст в исходном вопросе сейчас. Сюда входят ответы как на вопросы Джеймса, так и на вопросы nico_ekito. Я посмотрел на процесс с помощью heroku ps, и процесс еще не простаивал (это появляется через час в журнале). Пожалуйста, добавьте комментарий, если необходимы дополнительные разъяснения.   -  person Magnus    schedule 27.05.2012
comment
На самом деле, nico_ekito может быть что-то и понял, это был хороший намек. Я пробовал с игровой сценой на своем локальном компьютере, и там я тоже не получаю никаких распечаток. Так что определенно что-то происходит с игровой сценой, чего я не понимаю. Я расследую немного больше поста здесь.   -  person Magnus    schedule 27.05.2012
comment
Похоже, это была регистрация. Когда я помещаю ведение журнала актера в ошибку, он фактически распечатывает Heardbeat в журналах. Я нашел эту тему: groups.google.com/forum/? fromgroups#!topic/play-framework/, похоже, говорит о той же проблеме. Согласно этой теме, Play сбрасывает журнал при запуске. Это объясняет, почему я вижу сообщения журнала отладки из метода запуска, но не после этого. Спасибо за помощь. Nico_ekito: если вы опубликуете ответ с изложением, я приму его, поскольку вы намекнули, в чем проблема.   -  person Magnus    schedule 27.05.2012
comment
Вы также можете начать в режиме Prod с помощью play start.   -  person James Ward    schedule 27.05.2012
comment
Джеймс: спасибо. Я попытался запустить play start (локально), и похоже, что это то же самое поведение, что и play stage. Возможно, это ошибка: play.lighthouseapp.com/projects/82401-play-20/tickets/ Я попытался воспроизвести информацию, которую нашел там. Может, это привлечет к нему внимание. В конце концов, похоже, это не имеет ничего общего с Heroku.   -  person Magnus    schedule 27.05.2012


Ответы (1)


Проблема, похоже, связана с настройкой вашего регистратора, потому что в вашем Heartbeat вы печатаете сообщение с уровнем «отладки». Насколько мне известно, Heroku запускает ваше приложение Play в «производственном» режиме (= «запуск воспроизведения»), т. е. для уровня журнала установлено значение «информация», поэтому отладочные сообщения никогда не печатаются в Heroku.

person ndeverge    schedule 27.05.2012