Я пытаюсь загрузить простое приложение ruby на heroku, которое периодически запускает фоновое задание с использованием resque, который проверяет учетную запись электронной почты. Он отлично работает на месте с мастером, но продолжает падать на героку.
Я думаю, может быть, Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
происходит от моего цикла while, который вечен и поэтому длиннее 60 секунд? Должен ли я использовать какой-то другой процесс для запуска smsnotify.rb?
Любая помощь будет чрезвычайно оценена!
Мои Heroku журналы:
2013-04-06T20:49:15+00:00 heroku[slugc]: Slug compilation finished
2013-04-06T20:49:18+00:00 heroku[web.1]: Starting process with command `bundle exec ruby smsnotify.rb -p 9129`
2013-04-06T20:49:21+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.0.0/lib/active_support/multibyte.rb:26: warning: already initialized constant VALID_CHARACTER
2013-04-06T20:50:19+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2013-04-06T20:50:19+00:00 heroku[web.1]: Stopping process with SIGKILL
2013-04-06T20:50:20+00:00 heroku[web.1]: Process exited with status 137
2013-04-06T20:50:20+00:00 heroku[web.1]: State changed from starting to crashed
Мои PROCFILE:
web: bundle exec ruby smsnotify.rb -p $PORT
resque: env TERM_CHILD=1 bundle exec rake jobs:work
smsnotify.rb:
require "./email_checker"
require 'hirefire'
require 'resque'
Resque.redis = 'redis://redistogo:removed:removed/'
HireFire::Initializer.initialize!
while true do
Resque.enqueue(EmailChecker)
sleep 30
puts "Starting Email Job"
end
я не делаю подумайте, что вы действительно можете это сделать в героике. Альтернативой, которую они предлагают для фоновой обработки, является Delayed Job (DJ). Это объясняет весь процесс лучше: https://devcenter.heroku.com/articles/delayed-job, помните, что вы будете платить за использование «работника». – fmendez
Спасибо - я переключился на использование resque и проверку учетной записи электронной почты в фоновом режиме. Опять же, это работает нормально локально, но я получаю сообщение об ошибке «Ошибка R10 (Boot timeout) -> Web не удалось связать с $ PORT в течение 60 секунд после ошибки запуска при запуске приложения на heroku. Может быть, ошибка исходит из моего цикла while, который вечен и поэтому длиннее 60 секунд? Должен ли я использовать какой-то другой процесс для запуска smsnotify.rb? – Nick5a1
Я обновил вопрос. Heroku поддерживает Resque. Может ли кто-нибудь дать некоторые указания, пожалуйста? – Nick5a1