Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 如何检查sidekiq队列_Ruby On Rails 4_Sidekiq - Fatal编程技术网

Ruby on rails 4 如何检查sidekiq队列

Ruby on rails 4 如何检查sidekiq队列,ruby-on-rails-4,sidekiq,Ruby On Rails 4,Sidekiq,在单独的选项卡中,我正在运行 bundle exec sidekiq 在我运行的另一个选项卡中: SendWithUsInviteeMailerJob.perform\u async(invitee.id) 这就开始了这里的工作: class SendWithUsInviteeMailerJob include Sidekiq::Worker sidekiq_options queue: :mailer, retry: 2 def perform(invitee_id) S

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

bundle exec sidekiq

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

SendWithUsInviteeMailerJob.perform\u 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中排队?假设这是一个测试环境。我基本上希望看到这个作业是为了测试而排队的

这是我的档案:


...
宝石“sidekiq”
宝石“redis”
...

在我的spec_助手中:

require 'sidekiq/testing'

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

Sidekiq::Testing.fake!

有多种方法可以做到这一点。一种方法是使用
Sidekiq::Web
,这是一个很好的图形界面,用于查看计划、排队、忙碌、已处理、重试和失败的作业:

另一种方法是使用终端。运行
redis server
sidekiq
启动服务。现在,在rails中,键入
SendWithUsInviteeMailerJob.perform_async
以执行作业,然后将在运行sidekiq的终端窗格中显示该作业


或者,在rails控制台中调用
Sidekiq::enqued_jobs(queue::mailer)
,以获取一组mailer作业。但是,对于快速作业,您需要同样快速地键入,以便在作业被发送到繁忙作业(
Sidekiq::busy_jobs
)并被执行之前捕获该作业。

在运行
bundle exec Sidekiq
的终端选项卡中,如何获取日志以查看该作业排队的内容?(id号、参数等)