Heroku上的Resque运行不正常

时间:2011-03-14 07:02:20

标签: ruby-on-rails-3 heroku redis resque

我使用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 console”中,我这样做:

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

在“heroku日志”中,当我第一次运行上面的代码时,我可以看到4个“put”。但是第二次运行它只会返回'foobar'。其他“看跌期权”没有显示.....

我怀疑第二次无法运行“media = Media.find(media_id)”。这只发生在Heroku上的生产服务器上。在我们的本地开发机器上,我们没有遇到这个问题....任何人都知道出了什么问题?

PS。我已尝试启用Heroku logs,但仍未获得任何有用的响应。我已按照此tutorial设置Heroku with Resque

1 个答案:

答案 0 :(得分:0)

好像你的工作失败了(可能你对'media = Media.find'系列你是对的)。查看resque管理界面。寻找失败的工作,在那里你会找到每个失败工作的回溯。

希望这有帮助。