【问题标题】:Resque job not actually backgroundingResque 工作实际上并不是后台工作
【发布时间】:2013-11-08 20:13:26
【问题描述】:

它反而占用了我的处理器,然后实际上超时了。

我的控制器中有:

after_save :handle_file

def handle_test
  Resque.enqueue UnpackFileOnS3, parent.id
end

它达到了这个标记,然后整个应用程序等待它按照我的 Job 中的规定设置和上传文件。然后它可以预见地超时,因为它需要一段时间才能上传。

这也发生在我的控制台中。如果我运行:

Resque.enqueue UnpackFileOnS3, 4

然后,它不会将它排入队列,而是在尝试运行整个文件时锁定我的控制台。我认为通常情况下,控制台只会将它排入工作人员和 redis..

为什么这实际上没有在后台发生?我假设如果是这种情况,则不会发生超时。

【问题讨论】:

  • 只是检查:您是否在后台启动了 Resque 工作人员?
  • rake resque:work QUEUE=*。而且它必须在技术上正常工作,因为它确实运行了该过程,但代价是让整个服务器等待它完成。
  • 但是想一想,当我在控制台中运行resque.info 时,没有任何队列显示任何响应,尽管我来自 resque 工作人员本身的记录器正在正确输出.. 好像 Resque 是被完全忽略,并将我的类作为服务器进程运行。

标签: ruby-on-rails amazon-s3 resque


【解决方案1】:

我的猜测是您正在以内联模式运行 resque。在这种模式下,队列被禁用。检查您的配置以获取此类代码:

Resque.inline = ENV['RAILS_ENV'] == "cucumber"
#or whatever, important part is the inline option

【讨论】:

  • 啊,你真是个天才。非常感谢 Gurudev Tumas。
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 2014-02-21
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多