Module: Perilune::Tasks::Mixin::InstanceMethods
- Defined in:
- lib/perilune/tasks/mixin.rb
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#file ⇒ Object
readonly
Returns the value of attribute file.
-
#task ⇒ Object
readonly
Returns the value of attribute task.
Instance Method Summary collapse
- #execute ⇒ Object
- #failure(message) ⇒ Object
- #initialize(file:, task:) ⇒ Object
- #operate ⇒ Object
- #success? ⇒ Boolean
- #tags ⇒ Object
- #tracer ⇒ Object
- #tracer_config ⇒ Object
- #track_stats(event:, success:) ⇒ Object
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
11 12 13 |
# File 'lib/perilune/tasks/mixin.rb', line 11 def errors @errors end |
#file ⇒ Object (readonly)
Returns the value of attribute file.
11 12 13 |
# File 'lib/perilune/tasks/mixin.rb', line 11 def file @file end |
#task ⇒ Object (readonly)
Returns the value of attribute task.
11 12 13 |
# File 'lib/perilune/tasks/mixin.rb', line 11 def task @task end |
Instance Method Details
#execute ⇒ Object
20 21 22 23 24 25 |
# File 'lib/perilune/tasks/mixin.rb', line 20 def execute task.update(state: 'processing') operate rescue StandardError => e failure(e.) end |
#failure(message) ⇒ Object
31 32 33 |
# File 'lib/perilune/tasks/mixin.rb', line 31 def failure() @errors = end |
#initialize(file:, task:) ⇒ Object
15 16 17 18 |
# File 'lib/perilune/tasks/mixin.rb', line 15 def initialize(file:, task:) @file = file @task = task end |
#operate ⇒ Object
39 40 41 |
# File 'lib/perilune/tasks/mixin.rb', line 39 def operate(*) raise StandardError, 'operate function is not defined' end |
#success? ⇒ Boolean
35 36 37 |
# File 'lib/perilune/tasks/mixin.rb', line 35 def success? errors.blank? end |
#tags ⇒ Object
27 28 29 |
# File 'lib/perilune/tasks/mixin.rb', line 27 def task. end |
#tracer ⇒ Object
57 58 59 60 61 |
# File 'lib/perilune/tasks/mixin.rb', line 57 def tracer @tracer ||= Trifle::Logger.tracer = Trifle::Logger::Tracer::Hash.new( key: task.id, reference: task.id, config: tracer_config ) end |
#tracer_config ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/perilune/tasks/mixin.rb', line 43 def tracer_config @tracer_config ||= Trifle::Logger::Configuration.new @tracer_config.on(:wrapup) do |tracer| entry = Perilune::Task.find_by(id: tracer.reference) next if entry.nil? entry.update( tracer_data: tracer.data, state: tracer.state ) end @tracer_config end |
#track_stats(event:, success:) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/perilune/tasks/mixin.rb', line 63 def track_stats(event:, success:) Trifle::Stats.track( key: "perilune::#{event.downcase}", at: Time.zone.now, config: Perilune.default.stats_driver_config, values: { count: 1, success: success ? 1 : 0, failure: success ? 0 : 1 } ) end |