Class: Sidekiq::Failures::Middleware
- Inherits:
-
Object
- Object
- Sidekiq::Failures::Middleware
- Defined in:
- lib/sidekiq/failures/middleware.rb
Instance Attribute Summary collapse
-
#msg ⇒ Object
Returns the value of attribute msg.
Instance Method Summary collapse
Instance Attribute Details
#msg ⇒ Object
Returns the value of attribute msg.
5 6 7 |
# File 'lib/sidekiq/failures/middleware.rb', line 5 def msg @msg end |
Instance Method Details
#call(worker, msg, queue) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sidekiq/failures/middleware.rb', line 7 def call(worker, msg, queue) self.msg = msg yield rescue Sidekiq::Shutdown raise rescue Exception => e raise e if skip_failure? msg['error_message'] = e. msg['error_class'] = e.class.name msg['processor'] = identity msg['failed_at'] = Time.now.utc.to_f if msg['backtrace'] == true msg['error_backtrace'] = e.backtrace elsif msg['backtrace'] == false # do nothing elsif msg['backtrace'].to_i != 0 msg['error_backtrace'] = e.backtrace[0..msg['backtrace'].to_i] end payload = Sidekiq.dump_json(msg) Sidekiq.redis do |conn| conn.zadd(LIST_KEY, Time.now.utc.to_f, payload) unless Sidekiq.failures_max_count == false conn.zremrangebyrank(LIST_KEY, 0, -(Sidekiq.failures_max_count + 1)) end end raise e end |