Sha256: f05133a9d168a8c0d9b6014e7dbeff3a5caa3827d417a2443f205cd310ee39b5

Contents?: true

Size: 857 Bytes

Versions: 1

Compression:

Stored size: 857 Bytes

Contents

# frozen_string_literal: true

# https://gist.github.com/jordinl83/08ad9afd8f5046ddd9d38bcebf373e74

module Executo
  class SchedulerWorker
    include Sidekiq::Worker
    sidekiq_options queue: 'critical'

    def perform
      execution_time = Time.now.utc
      execution_time -= execution_time.sec

      self.class.perform_at(execution_time + 60) unless scheduled?

      # SCHEDULE.each do |(worker_class, schedule_lambda)|
      #   worker_class.perform_async if !scheduled?(worker_class) && schedule_lambda.call(execution_time)
      # end
    end

    def scheduled?(worker_class = self.class)
      scheduled_workers[worker_class.name]
    end

    private

    def scheduled_workers
      @scheduled_workers ||= Sidekiq::ScheduledSet.new.entries.each_with_object({}) do |item, hash|
        hash[item['class']] = true
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
executo-0.3.12 lib/executo/scheduler_worker.rb