【问题标题】:Resque not running workers to pick jobs from queue - RailsResque 没有运行工人从队列中挑选工作 - Rails
【发布时间】:2013-08-07 09:05:18
【问题描述】:

我有一个非常重要的工作要运行。我尝试通过发出命令将我的工作排队到队列中: Resque.enqueue("QUEUE", params)

它将作业推送到队列中。我尝试将 resque 接口作为 localhost:3000/resque 运行。它向我显示了待处理的工作。但它也表明没有工人在运行。我运行 rake 任务以通过命令启动工作人员:(QUEUE='*' bundle exec rake resque:work)。 我的 redis 实例是 Resque.redis = #<Redis::Namespace:0x007f82183d0120 @namespace=:resque, @redis=#<Redis client v2.2.2 connected to redis://localhost:6379/0 (Redis v0.07)>>

当我尝试运行该 rake 任务时,我也没有收到任何错误。如果您需要更多信息,请告诉我。

【问题讨论】:

  • 哪个版本的 resque 以及尝试调用这个 Resque.enqueue([Some Class], params) 类似 Resque.enqueue(Archive, self.id, branch) 的地方,这里的存档是工人阶级
  • Resque 版本是 v1.20.0。我会试试看。谢谢

标签: ruby-on-rails redis resque


【解决方案1】:

这是旧的,但希望这可以帮助在这里绊倒的人。

如果您使用resque-lockresque-queue-lock,您的队列可能会被锁定,并且它可能不会被释放,因为进程可能在释放锁定之前已被终止。

在我们的例子中,我们找到了所有的锁

Resque::Plugins::Queue::Lock.all_queue_locks

找到我们需要删除的,然后从redis中删除密钥

Resque.redis.del(the_key_name)

the_key_name 上面是您在上一步中找到的确切字符串。

【讨论】:

    猜你喜欢
    • 2013-04-02
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    相关资源
    最近更新 更多