首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sidekiq将作业入队,而不是将其出队

Sidekiq将作业入队,而不是将其出队
EN

Stack Overflow用户
提问于 2014-09-04 21:56:57
回答 1查看 712关注 0票数 1

出于某种原因,Sidekiq没有为我运行任何作业。它可以很好地将它们排入队列,但永远不会将它们移出队列。

我已经确认redis正在运行:

代码语言:javascript
复制
ps aux | grep redis
root      2756  0.0  0.0 140612  2656 ?        Sl   Sep03   0:36 redis-server *:6379
root      7489  0.0  0.0 110284   840 pts/0    S+   09:19   0:00 grep redis

我已经确认Sidekiq正在运行:

代码语言:javascript
复制
ps aux | grep sidekiq
root      6732  0.1  1.9 2527436 148000 ?      Sl   09:04   0:03 sidekiq 3.2.1 CompleteSet-Rails [0 of 25 busy]                                                                                              
root      7901  0.0  0.0 110280   840 pts/0    S+   09:44   0:00 grep sidekiq

我使用以下命令启动Sidekiq:

代码语言:javascript
复制
bundle exec sidekiq -d -e production -L log/sidekiq.log

我已经确认它正在向队列中添加作业:

代码语言:javascript
复制
Sidekiq.redis { |r| r.lrange "queue:default", 0, -1 }.length
=> 70 
UserMailer.delay.reset_password(User.third)
=> "9fc420a5b21224e5b264b9e9" 
Sidekiq.redis { |r| r.lrange "queue:default", 0, -1 }.length
=> 71

我没有使用定制的工作者类,也没有尝试使用定制的.yml或.rb配置文件。你知道为什么它不执行作业吗?

编辑:

我确实注意到选项不会返回任何队列。会不会跟这件事有关?

代码语言:javascript
复制
Sidekiq.options
=> {:queues=>[], :labels=>[], :concurrency=>25, :require=>".", :environment=>nil, :timeout=>8, :error_handlers=>[], :lifecycle_events=>{:startup=>[], :quiet=>[], :shutdown=>[]}}
EN

回答 1

Stack Overflow用户

发布于 2014-09-04 23:05:59

我没有显式地将它设置为检查log/idekiq.yml或config/initializers/idekiq.rb,但无论如何它都会检查它们。在初始化器文件中,我将其设置为仅从一个名为production的队列中读取,但因为我使用的是Mailer.delay.whatever,所以它将写入默认队列,即使我已将其配置为仅使用production。如果要更改写入的队列,请使用自定义工作线程,或使用Mailer.delay(queue: name)将其放入所需的队列中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25667374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档