Class: JuanPelota::Middlewares::Logging
- Inherits:
-
Object
- Object
- JuanPelota::Middlewares::Logging
- Defined in:
- lib/juan_pelota/middlewares/logging.rb
Instance Method Summary collapse
-
#call(worker, job, _queue) ⇒ Object
rubocop:disable Lint/RescueException, Metrics/AbcSize.
-
#elapsed(start) ⇒ Object
rubocop:enable Lint/RescueException, Metrics/AbcSize.
- #filtered_arguments(args) ⇒ Object
- #logger ⇒ Object
Instance Method Details
#call(worker, job, _queue) ⇒ Object
rubocop:disable Lint/RescueException, Metrics/AbcSize
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/juan_pelota/middlewares/logging.rb', line 7 def call(worker, job, _queue) start = Time.now unless config.filtered_workers.include? worker.class.name logger.info( 'status' => 'start', 'jid' => job['jid'], 'bid' => job['bid'], 'run_time' => nil, 'class' => worker.class.to_s, 'args' => filtered_arguments(job['args'].try(:first)), ) end yield unless config.filtered_workers.include? worker.class.name logger.info( 'status' => 'done', 'jid' => job['jid'], 'bid' => job['bid'], 'run_time' => elapsed(start), 'class' => worker.class.to_s, 'args' => filtered_arguments(job['args'].try(:first)), ) end rescue Exception => error = { 'error_class' => error.class.name, 'error_message' => error., 'error_backtrace' => error.backtrace.first(10), } logger.info( 'status' => 'fail', 'jid' => job['jid'], 'bid' => job['bid'], 'run_time' => elapsed(start), 'class' => worker.class.to_s, 'message' => , 'args' => filtered_arguments(job['args'].try(:first)), ) raise error end |
#elapsed(start) ⇒ Object
rubocop:enable Lint/RescueException, Metrics/AbcSize
54 55 56 |
# File 'lib/juan_pelota/middlewares/logging.rb', line 54 def elapsed(start) Float((Time.now - start)).round(3) end |
#filtered_arguments(args) ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'lib/juan_pelota/middlewares/logging.rb', line 62 def filtered_arguments(args) return if args.nil? @filtered_arguments ||= args.each_with_object({}) do |(key, value), filtered_hash| value = filtered_arguments(value) if value.is_a? Hash filtered_hash[key] = value unless config.filtered_arguments.include? key end end |
#logger ⇒ Object
58 59 60 |
# File 'lib/juan_pelota/middlewares/logging.rb', line 58 def logger ::Sidekiq.logger end |