【问题标题】:Resque - Not Processing QueueResque - 未处理队列
【发布时间】:2013-08-24 02:09:24
【问题描述】:

我有一个使用 Sinatra 构建的基于 Web 的应用程序。从最近开始,我需要定期收集数据并将它们存储在数据库中。为此,有人告诉我可以在 combine 中使用 ResqueClockwork gems。

每隔一小时左右,我需要根据数据库进行近 15 次计算,并将结果存储在数据库中。

这就是我采取的方法。我决定制作 15 个具有 perform 方法的类(我用于测试的确切文件如下)。然后为所有 15 个类做一些类似于 Resque.enqueue( GraphData ) 的事情。

class GraphData

  @queue = :graph_data

  def self.init()

  end

  def self.perform()
    File.open( '/home/ziyan/Desktop/resque.txt', 'a' ) { | file | file.write( "Resqueu - performed - #{Time.now}\n" ) }
  end

end

为了测试触发操作,我创建了一个 rake 任务。

desc "Start Resque Workers for Queue" # {{{
task :graph_data do |t|

  ENV["QUEUE"]      = "*"
  ENV["VVERBOSE"]   = "1"
  ENV["INTERVAL"]   = "5"

  Resque.enqueue( GraphData )
  #resque = Resque.new
  #resque << AdminWorker.new
end # }}}

如您所见,在 GraphData 类中,在 self.perform 方法下,我正在写入文件。

我的问题是它没有!我是不是做错了什么?

rake graph_data 将不显示任何输出。 Web 界面将显示Queue 中的作业。

其他信息

我添加了另一个 Rake 任务来运行 Web 界面。

desc "Start Resque Web Frontend" # {{{
task :resque_web_frontend do |t|
  sh "resque-web -p 8282"
  puts "Resque Web Frontend is running on http://localhost:8282"
end # }}

在他们身上,看到了一些有趣的东西。当我运行 rake 任务时,stats 下的 pending 值会增加,但不会被处理。

在队列下 -> graph_data 我看到类似这样的东西。

Class   Args
GraphData   []
GraphData   []
GraphData   []

我的结果

desc "Start Resque Workers for Queue" # {{{
task :graph_data do |t|

  ENV["QUEUE"]      = "*"
  ENV["VVERBOSE"]   = "1"
  ENV["INTERVAL"]   = "5"

  Rake::Task[ "resque:work" ].invoke
  Resque.enqueue( GraphData )
  #resque = Resque.new
  #resque << AdminWorker.new
end # }}}

【问题讨论】:

    标签: ruby resque


    【解决方案1】:

    这是在开发还是生产中?根据您的描述,您似乎没有启动 Resque 流程。你是如何运行你的应用程序的?我更熟悉将 Resque 与 Rails 一起使用,但您应该运行以下代码:

    rake resque:work QUEUE='*'
    

    让 resque worker 启动。

    【讨论】:

    • 哦,是的...你是对的...我还有一个问题。当我运行 rake 任务时,它每隔 5 秒就会显示..waiting 5 seconds 等并重复。这是什么重复?它不会重复任务。所以这就是我需要使用Clockwork 来完成每小时任务的地方?
    • 不确定,但可能是 Resque 工作人员每 5 秒轮询一次以查看是否有事情要做(即查看队列以查看是否有工作要选择)。您可以使用 resque_scheduler gem 定期运行作业。
    • 对于任何有加载错误的人,请使用:QUEUE=* rake environment resque:work
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多