gpt4 book ai didi

ruby-on-rails-3 - Sidekiq 不处理队列

转载 作者:IT王子 更新时间:2023-10-29 05:54:14 25 4
gpt4 key购买 nike

可能的原因有哪些Sidekiq防止处理队列中的作业?队列已满。日志文件 sidekiq.log 表明根本没有事件。因此队列已满但日志为空,Sidekiq 似乎没有处理项目。似乎没有 worker 处理工作。重新启动 Redis 或使用 FLUSHALL 刷新它或 FLUSHDB因为没有效果。 Sidekiq 已经开始于

bundle exec sidekiq -L log/sidekiq.log

并生成以下日志文​​件:

2013-05-30..Booting Sidekiq 2.12.0 using redis://localhost:6379/0 with options {}
2013-05-30..Running in ruby 1.9.3p374 (2013-01-15 revision 38858) [i686-linux]
2013-05-30..See LICENSE and the LGPL-3.0 for licensing details.
2013-05-30..Starting processing, hit Ctrl-C to stop

如何找出问题所在?是否有任何隐藏的日志文件?

最佳答案

原因就在我们的案例中:Sidekiq 可能会寻找错误的队列。默认情况下,Sidekiq 使用名为“default”的队列。我们使用了两个不同的队列名称,并在 config/sidekiq.yml 中定义了它们

# configuration file for Sidekiq
:queues:
- queue_name_1
- queue_name_2

问题是这个配置文件在你的开发环境中默认不会自动加载(不像database.ymlthinking_sphinx.yml例如)通过一个简单的 bundle exec sidekiq 命令。因此,我们在两个特定的队列中编写作业,而 Sidekiq 在第三个队列(默认队列)中等待作业。您必须通过 -C--config 选项将配置文件的路径作为参数传递:

bundle exec sidekiq -C ./config/sidekiq.yml

或者您可以直接传递队列名称(逗号后不允许有空格):

bundle exec sidekiq -q queue_name_1,queue_name_2

要找出问题,在命令行传递选项 -v--verbose 也很有帮助,或者使用 :verbose : truesidekiq.yml 文件中。如果未加载配置文件,配置文件中定义的所有内容当然都是无用的。因此请确保您首先使用正确的配置文件。

关于ruby-on-rails-3 - Sidekiq 不处理队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16835963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com