Class: Sidekiq::DeadSet
Overview
The set of dead jobs within Sidekiq. Dead jobs have failed all of their retries and are helding in this set pending some sort of manual fix. They will be removed after 6 months (dead_timeout) if not.
Instance Attribute Summary
Attributes inherited from SortedSet
Instance Method Summary collapse
-
#initialize ⇒ DeadSet
constructor
A new instance of DeadSet.
-
#kill(message, opts = {}) ⇒ Object
Add the given job to the Dead set.
-
#trim ⇒ Object
Trim dead jobs which are over our storage limits.
Methods inherited from JobSet
#delete_by_jid, #delete_by_value, #each, #fetch, #find_job, #kill_all, #pop_each, #retry_all, #schedule
Methods inherited from SortedSet
#as_json, #clear, #scan, #size
Constructor Details
#initialize ⇒ DeadSet
Returns a new instance of DeadSet.
917 918 919 |
# File 'lib/sidekiq/api.rb', line 917 def initialize super("dead") end |
Instance Method Details
#kill(message, opts = {}) ⇒ Object
Add the given job to the Dead set.
938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 |
# File 'lib/sidekiq/api.rb', line 938 def kill(, opts = {}) now = Time.now.to_f Sidekiq.redis do |conn| conn.zadd(name, now.to_s, ) end trim if opts[:trim] != false if opts[:notify_failure] != false job = Sidekiq.load_json() if opts[:ex] ex = opts[:ex] else ex = RuntimeError.new("Job killed by API") ex.set_backtrace(caller) end Sidekiq.default_configuration.death_handlers.each do |handle| handle.call(job, ex) end end true end |
#trim ⇒ Object
Trim dead jobs which are over our storage limits
922 923 924 925 926 927 928 929 930 931 |
# File 'lib/sidekiq/api.rb', line 922 def trim hash = Sidekiq.default_configuration now = Time.now.to_f Sidekiq.redis do |conn| conn.multi do |transaction| transaction.zremrangebyscore(name, "-inf", now - hash[:dead_timeout_in_seconds]) transaction.zremrangebyrank(name, 0, - hash[:dead_max_jobs]) end end end |