Class Rufus::Scheduler::EveryJob

  1. lib/rufus/sc/jobs.rb

Recurring job with a certain frequency.

Methods

public class

  1. new

public instance

  1. trigger

protected instance

  1. determine_at
  2. determine_frequency
  3. schedule_next

Attributes

frequency [R] The frequency, in seconds, of this EveryJob

Public class methods

new (scheduler, t, params, &block)
[show source]
     # File lib/rufus/sc/jobs.rb, line 237
237:     def initialize (scheduler, t, params, &block)
238:       super
239:       determine_frequency
240:       determine_at
241:     end

Public instance methods

trigger ()

Triggers the job (and reschedules it).

[show source]
     # File lib/rufus/sc/jobs.rb, line 245
245:     def trigger
246: 
247:       schedule_next
248: 
249:       super
250: 
251:       #unschedule if @params[:dont_reschedule]
252:         # obsolete
253:     end

Protected instance methods

determine_at ()
[show source]
     # File lib/rufus/sc/jobs.rb, line 263
263:     def determine_at
264: 
265:       return unless @frequency
266: 
267:       @last = @at
268:         # the first time, @last will be nil
269: 
270:       @at = if @last
271:         @last + @frequency
272:       else
273:         if fi = @params[:first_in]
274:           Time.now.to_f + Rufus.duration_to_f(fi)
275:         elsif fa = @params[:first_at]
276:           Rufus.at_to_f(fa)
277:         else
278:           Time.now.to_f + @frequency
279:         end
280:       end
281:     end
determine_frequency ()
[show source]
     # File lib/rufus/sc/jobs.rb, line 257
257:     def determine_frequency
258: 
259:       @frequency = @t.is_a?(Fixnum) || @t.is_a?(Float) ?
260:         @t : Rufus.parse_duration_string(@t)
261:     end
schedule_next ()

It’s an every job, have to schedule next time it occurs...

[show source]
     # File lib/rufus/sc/jobs.rb, line 285
285:     def schedule_next
286: 
287:       determine_at
288: 
289:       @scheduler.send(:add_job, self)
290:     end