Class: Railswatch::Gems::DelayedJobExt::Plugin
- Inherits:
-
Delayed::Plugin
- Object
- Delayed::Plugin
- Railswatch::Gems::DelayedJobExt::Plugin
- Defined in:
- lib/railswatch/gems/delayed_job_ext.rb
Class Method Summary collapse
- .filtered_args(payload_object) ⇒ Object
-
.meta(payload_object) ⇒ Object
[source_type, class_name, method_name].
-
.persist(job, now, status, error) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/MethodLength.
Class Method Details
.filtered_args(payload_object) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/railswatch/gems/delayed_job_ext.rb', line 57 def self.filtered_args(payload_object) raw = payload_object.args if payload_object.respond_to?(:args) Railswatch::Utils.filter_params({ 'args' => Array.wrap(raw) })['args'] rescue StandardError nil end |
.meta(payload_object) ⇒ Object
- source_type, class_name, method_name
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/railswatch/gems/delayed_job_ext.rb', line 43 def self.(payload_object) # rubocop:disable Metrics/MethodLength if payload_object.is_a?(::Delayed::PerformableMethod) if payload_object.object.is_a?(Module) [:class_method, payload_object.object.name, payload_object.method_name.to_s] else [:instance_method, payload_object.object.class.name, payload_object.method_name.to_s] end else [:instance_method, payload_object.class.name, 'perform'] end rescue StandardError %i[unknown unknown unknown] end |
.persist(job, now, status, error) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/MethodLength
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/railswatch/gems/delayed_job_ext.rb', line 22 def self.persist(job, now, status, error) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength = (job.payload_object) error_bt = error ? error.backtrace&.take(20)&.join("\n") : nil record = Railswatch::Models::DelayedJobRecord.new( jid: job.id, duration: (Railswatch::Utils.time - now) * 1000, datetime: now.strftime(Railswatch::FORMAT), datetimei: now.to_i, source_type: [0], class_name: [1], method_name: [2], status: status, job_args: filtered_args(job.payload_object), error_message: error&., error_backtrace: error_bt ) record.save CurrentRequest.cleanup end |