【问题标题】:Resque on Heroku not running properlyHeroku 上的 Resque 无法正常运行
【发布时间】:2011-07-14 19:39:56
【问题描述】:

我在后台工作中使用 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'。其他“放置”不显示.....

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

PS。我已经尝试启用Heroku logs,但仍然没有得到任何有用的响应。我已按照tutorial 使用 Resque 设置 Heroku

【问题讨论】:

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


    【解决方案1】:

    您的工作似乎失败了(可能您对“media = Media.find”行的看法是正确的)。查看 resque 管理界面。查找失败的作业,在那里您会找到每个失败作业的回溯。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多