如何查看sidekiq队列

问题描述 投票:0回答:1

在单独的选项卡中,我正在运行

bundle exec sidekiq

在我正在运行的另一个选项卡中:

SendWithUsInviteeMailerJob.perform_async(invitee.id)

这开始了这里的工作:

class SendWithUsInviteeMailerJob
  include Sidekiq::Worker
  sidekiq_options queue: :mailer, retry: 2

  def perform(invitee_id)
    SendWithUsInviteeMailer.welcome(invitee_id).deliver
  end
end

如何确定该作业是否已在 sidekiq 中排队?说这是一个测试环境。我基本上想看到这项工作是出于测试目的而排队的。

这是我的 gemfile:


...
gem 'sidekiq'
gem 'redis'
...

在我的spec_helper中:

require 'sidekiq/testing'

  config.before(:each) do
    Sidekiq::Worker.clear_all
  end
end

Sidekiq::Testing.fake!
ruby-on-rails-4 sidekiq
1个回答
0
投票

有多种方法可以做到这一点。一种方法是使用

Sidekiq::Web
,这是一个很好的图形界面,用于查看计划的、排队的、忙碌的、已处理的、重试的和失败的作业:

https://github.com/mperham/sidekiq/wiki/Monitoring

另一种方法是使用终端。运行

redis-server
sidekiq
启动服务。现在,在 Rails cusole 中输入
SendWithUsInviteeMailerJob.perform_async
来执行作业,然后该作业将显示在运行 sidekiq 的终端窗格中。

或者,在 Rails 控制台中调用

Sidekiq::enqued_jobs(queue: :mailer)
来获取一系列邮件程序作业。然而,对于快速作业,您需要同样快速地输入,以便在作业被发送到繁忙作业 (
Sidekiq::busy_jobs
) 并被执行之前捕获作业。

© www.soinside.com 2019 - 2024. All rights reserved.