Module: StateManager::DelayedJob::State
- Included in:
- State
- Defined in:
- lib/state_manager/plugins/delayed_job.rb
Instance Method Summary collapse
Instance Method Details
#delayed_events ⇒ Object
20 21 22 |
# File 'lib/state_manager/plugins/delayed_job.rb', line 20 def delayed_events self.class.specification.events.reject{|name,event|!event[:delay]} end |
#entered ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/state_manager/plugins/delayed_job.rb', line 24 def entered delayed_events.each do |name, event| delay = if event[:delay].is_a? Proc instance_exec(&event[:delay]) elsif event[:delay].is_a? Symbol send event[:delay] else event[:delay] end delayed_event = DelayedEvent.new(path, event, state_manager) Delayed::Job.enqueue delayed_event, :run_at => delay.from_now end end |
#exited ⇒ Object
38 39 40 41 42 43 |
# File 'lib/state_manager/plugins/delayed_job.rb', line 38 def exited # TODO: we currently just have logic inside the job itself which # skips the event if it is no longer relevant. This is not perfect. # Ideally we should cancel events in this method (requiring an # efficient way to do this without looping over all events). end |