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, #remove_job, #retry_all, #schedule
Methods inherited from SortedSet
#as_json, #clear, #scan, #size
Constructor Details
#initialize ⇒ DeadSet
Returns a new instance of DeadSet.
927 928 929 |
# File 'lib/sidekiq/api.rb', line 927 def initialize super("dead") end |
Instance Method Details
#kill(message, opts = {}) ⇒ Object
Add the given job to the Dead set.
948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 |
# File 'lib/sidekiq/api.rb', line 948 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
932 933 934 935 936 937 938 939 940 941 |
# File 'lib/sidekiq/api.rb', line 932 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 |