Resque на Heroku не работает должным образом - PullRequest
1 голос
/ 14 марта 2011

Я использую Resque + RedisToGo для своих фоновых заданий.У меня проблемы с выполнением фоновых задач на Heroku.Это странно, потому что, когда я в первый раз запускаю фоновое задание, оно выполняется без проблем.Но когда я запускаю его снова, он не выполняется.Я должен был бы запустить «heroku restart», каждый раз, чтобы фон успешно завершился ....

Например. Если у меня есть следующий код в фоновом действии Resque:

module EncodeSong
  @queue = :encode_song

  def self.perform(media_id, s3_file_url)
    puts 'foobar'

    media = Media.find(media_id)

    puts 'media id is supposed to be here'
    puts media.id
    puts s3_file_url
  end
end

В «консоли heroku» я делаю:

Resque.enqueue(EncodeSong, 26, 'http://actual_bucket_name.s3.amazonaws.com/unencoded/users/1/songs/test.mp3')

В «журналах heroku» я вижу 4 «пута», когда я запускаю вышеуказанный код в первый раз. Но запускаю егово второй раз возвращает только «foobar». Другие «put» не отображаются .....

Я подозреваю, что он не может запустить "media = Media.find (media_id)",второй раз. Это происходит только на рабочем сервере Heroku. На нашей локальной машине разработки мы не испытываем этой проблемы .... Кто-нибудь знает, что не так?

PS. Я попытался включить Журналы Heroku , но до сих пор не получили никакого полезного ответа. Я следовал этому уроку , чтобы настроить Heroku с помощью Resque

1 Ответ

0 голосов
/ 19 апреля 2011

Похоже, что ваша работа терпит неудачу (возможно, вы правы в отношении строки 'media = Media.find'). Посмотрите через интерфейс администратора Resque. Ищите неудачные задания, там вы найдете след каждой неудачной работы.

Надеюсь, это поможет.

...