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
#each, #fetch, #find_job, #kill_all, #pop_each, #retry_all, #schedule
Methods inherited from SortedSet
Constructor Details
#initialize ⇒ DeadSet
Returns a new instance of DeadSet.
825 826 827 |
# File 'lib/sidekiq/api.rb', line 825 def initialize super("dead") end |
Instance Method Details
#kill(message, opts = {}) ⇒ Object
Add the given job to the Dead set.
846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 |
# File 'lib/sidekiq/api.rb', line 846 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
830 831 832 833 834 835 836 837 838 839 |
# File 'lib/sidekiq/api.rb', line 830 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 |