Sha256: c2ec3484ee8c845a8bad86b5ec7606d7a3e9ae1a3edaa57169a0467f484b02b9
Contents?: true
Size: 1.28 KB
Versions: 5
Compression:
Stored size: 1.28 KB
Contents
module Sidetiq # Public: Mixin for Sidekiq::Worker classes. # # Examples # # class MyWorker # include Sidekiq::Worker # include Sidetiq::Schedulable # # # Daily at midnight # recurrence { daily } # end module Schedulable extend SubclassTracking module ClassMethods include SubclassTracking attr_writer :schedule # Public: Returns a Float timestamp of the last scheduled run. def last_scheduled_occurrence get_timestamp "last" end # Public: Returns the Sidetiq::Schedule for this worker. def schedule @schedule ||= Sidetiq::Schedule.new end # Public: Returns a Float timestamp of the next scheduled run. def next_scheduled_occurrence get_timestamp "next" end def recurrence(options = {}, &block) # :nodoc: schedule.instance_eval(&block) schedule.set_options(options) end private def get_timestamp(key) Sidekiq.redis do |redis| (redis.get("sidetiq:#{name}:#{key}") || -1).to_f end end end def self.included(klass) # :nodoc: super klass.extend(Sidetiq::Schedulable::ClassMethods) klass.extend(Sidetiq::SubclassTracking) subclasses << klass end end end
Version data entries
5 entries across 5 versions & 1 rubygems