Sidekiq 两个默认队列

Sidekiq Two Default Queues

我的暂存和生产应用程序都使用相同的构建命令:

bundle exec sidekiq -c 2 -q default -q mailers

我的暂存应用程序中的队列名称与构建命令状态完全匹配:

但是,我的生产应用程序显示如下:

我知道默认前缀来自我的 cable.yml:

development:
  adapter: async

test:
  adapter: test

production:
  adapter: redis
  url: <%= ENV["REDIS_URL"] { "redis://localhost:6379/1" } %>
  channel_prefix: calendarize_production

我不明白为什么有两个默认值却没有邮件队列?我做错了什么?

Sidekiq 的队列定义不是在 cable.yml 上完成的,而是在 sidekiq.yml 上完成的,这里有一个例子:

:concurrency: 5
:queues:
  - default
  - mailers

staging:
  :queues:
    - ["my_project_staging_default", 3]
    - ["my_project_staging_mailers", 2]
  :tag: STAGING
  :labels:
    - default
    - mailers

production:
  :queues:
    - ["my_project_production_default", 3]
    - ["my_project_production_mailers", 2]
  :concurrency: 5
  :tag: PRODUCTION
  :labels:
    - default
    - mailers

使用 default 而不命名的风险是在环境之间共享工作人员。然后我会建议给它们命名,这样你就可以 100% 确定在什么地方执行什么。