LoginSignup
10
12

More than 5 years have passed since last update.

sidekiqでqueueの中身を確認する方法

Last updated at Posted at 2015-10-13

APIドキュメントにも明には書いてなかった気がするので備忘録として。
※以下ではActiveJobを使っています。

queueに入っているJobの数を確認する。

queue名を指定して Sidekiq::Queue.new すると色々ゴニョゴニョ出来るみたい。
以下は default というqueueを取得する例。

[60] pry(main)> queue = Sidekiq::Queue.new('default')
[61] pry(main)> queue.size

queueの各Jobの内容を確認する

queue.first で最初のJobの中身が確認できるようなので見てみる。

[33] pry(main)> queue.first
=> #<Sidekiq::Job:0x007fac2ca82ca0
 @item=
  {"class"=>"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper",
   "wrapped"=>"ActionMailer::DeliveryJob",
   "queue"=>"mailers",
   "args"=>
    [{"job_class"=>"ActionMailer::DeliveryJob",
      "job_id"=>"e02f1e74-aef4-4ea1-b374-e93da431a949",
      "queue_name"=>"mailers",
      "arguments"=>["HogeMailer", "user_created", "deliver_later", {"_aj_globalid"=>"gid://app/User/1"}]}],
   "retry"=>true,
   "jid"=>"3b19683d5a8dbc085b1302c6",
   "created_at"=>1444714057.8843222,
   "enqueued_at"=>1444714057.884371},
 @queue="mailers",
 @value=
  "{\"class\":\"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper\",\"wrapped\":\"ActionMailer::DeliveryJob\",\"queue\":\"mailers\",\"args\":[{\"job_class\":\"ActionMailer::DeliveryJob\",\"job_id\":\"e02f1e74-aef4-4ea1-b374-e93da431a949\",\"queue_name\":\"mailers\",\"arguments\":[\"HogeMailer\",\"user_created\",\"deliver_later\",{\"_aj_globalid\":\"gid://app/User/1\"}]}],\"retry\":true,\"jid\":\"3b19683d5a8dbc085b1302c6\",\"created_at\":1444714057.8843222,\"enqueued_at\":1444714057.884371}">

上記から、各Jobの中身によって色々集計変えたいとか処理変えたいとか何かしたいだったら、以下のようにすれば良さそう

queue = Sidekiq::Queue.new('default')
queue.each do |q|
  if q.args.first["arguments"].include?('hogehoge')
    puts hogehoge
  end
end
10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12