Method: Gnomon#deschedule

Defined in:
lib/gnomon.rb

#deschedule(id, keep_running = false) ⇒ Object

De-schedule: Removes one or more previously-scheduled events from the scheduler.

Parameters:

  • id (Object)

    The ID of the event(s) to remove (all events with this ID will be removed)

  • keep_running (Object) (defaults to: false)

    When true, the next trigger is maintained



106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/gnomon.rb', line 106

def deschedule id, keep_running = false

  # Synchronize
  @lock.synchronize do

    # De-schedule Event
    @esched.delete_if { |e| e[:id] == id }

    # De-queue any next run
    @equeue.delete_if { |e| e[:event][:id] == id } unless keep_running
    @equeue.each { |e| e[:event][:last_run] = true if e[:event][:id] == id } if keep_running
  end
end