3

我有一项艰巨的工作要运行。我尝试通过发出命令将我的工作排队到队列中: 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 任务时,我也没有收到任何错误。如果您需要更多信息,请告诉我。

4

1 回答 1

1

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

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

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

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

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

Resque.redis.del(the_key_name)

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

于 2017-08-12T00:03:48.693 回答