ruby on rails - Access and Delete Dead Jobs in Sidekiq -
i'm running sidekiq inside docker container in production , don't have access web ui. sidekiq workers appear have failed , need check whether have indeed failed , delete or retry them.
not hundred percent i'm seeing here having collected workers using workers = sidekiq::workers.new
, i'm getting result in rails console leads me believe have dead jobs:
workers.each { |process_id, thread_id, work| puts "worker #{work}\n\n" } worker {"queue"=>"default", "payload"=>{"retry"=>1, "queue"=>"default", "class"=>"peopleworker", "args"=>["<arg-1>", "55800c0161616600b5000000"], "jid"=>"08126d4162242a26825ce2d3", "enqueued_at"=>1436800316.1181111, "error_message"=>"error 503: query timed out", "failed_at"=>1436816149.1032495, "retry_count"=>0}, "run_at"=>1436870942} worker {"queue"=>"default", "payload"=>{"retry"=>1, "queue"=>"default", "class"=>"peopleworker", "args"=>["<arg-1>", "55800c0161616600b5000000"], "jid"=>"16a68d843116702daad847d6", "enqueued_at"=>1436800316.2001767, "error_message"=>"error 503: query timed out", "failed_at"=>1436816221.2766316, "retry_count"=>0}, "run_at"=>1436874457} worker {"queue"=>"default", "payload"=>{"retry"=>1, "queue"=>"default", "class"=>"peopleworker", "args"=>["<arg-1>", "55800c0161616600b5000000"], "jid"=>"999ed8c1bb43192fa9a5c8b1", "enqueued_at"=>1436800312.3595853, "error_message"=>"error 503: query timed out", "failed_at"=>1436816142.493408, "retry_count"=>0}, "run_at"=>1436868587} worker {"queue"=>"default", "payload"=>{"retry"=>1, "queue"=>"default", "class"=>"peopleworker", "args"=>["<arg-1>", "55800c0161616600b5000000"], "jid"=>"91d2ece3dd75dd8a4c95baed", "enqueued_at"=>1436800316.4514835, "error_message"=>"error 503: query timed out", "failed_at"=>1436817504.064808, "retry_count"=>0}, "run_at"=>1436875742} worker {"queue"=>"default", "payload"=>{"retry"=>1, "queue"=>"default", "class"=>"peopleworker", "args"=>["<arg-1>", "55800c0161616600b5000000"], "jid"=>"af620ff8406c126f8f2df89c", "enqueued_at"=>1436800315.562301, "error_message"=>"error 503: query timed out", "failed_at"=>1436816221.7349763, "retry_count"=>0}, "run_at"=>1436872039} worker {"queue"=>"default", "payload"=>{"retry"=>1, "queue"=>"default", "class"=>"peopleworker", "args"=>["<arg-1>", "55800c0161616600b5000000"], "jid"=>"79601ece1f09a7721881bb0b", "enqueued_at"=>1436800316.3225756, "error_message"=>"error 500: gc overhead limit exceeded", "error_class"=>"tripod::errors::badsparqlrequest", "failed_at"=>1436817517.111997, "retry_count"=>0}, "run_at"=>1436876319} => ["1cc9c3e7af3e:104", "1cc9c3e7af3e:117", "1cc9c3e7af3e:130", "1cc9c3e7af3e:150", "1cc9c3e7af3e:164", "1cc9c3e7af3e:191", "1cc9c3e7af3e:210", "1cc9c3e7af3e:224", "1cc9c3e7af3e:250", "1cc9c3e7af3e:263", "1cc9c3e7af3e:290", "1cc9c3e7af3e:311", "1cc9c3e7af3e:323", "1cc9c3e7af3e:350", "1cc9c3e7af3e:91"]
according htop
there 15 sidekiq processes running, curious what's happening here these results.
- am correct in understanding that, having hit exception during execution, these jobs in dead queue?
- that being case, should force retry of these jobs, or should deleted? have no reason think fail second time.
please read through sidekiq api, include sidekiq::retryset
, sidekiq::deadset
.
https://github.com/mperham/sidekiq/wiki/api#retries
jobs hitting exception go retryset can retried automatically.
Comments
Post a Comment