Class: AsyncCache::Workers::SidekiqWorker

Inherits:
Object
  • Object
show all
Includes:
Base, Options, Sidekiq::Worker
Defined in:
lib/async_cache/workers/sidekiq.rb

Defined Under Namespace

Modules: Options

Class Method Summary collapse

Methods included from Options

included

Methods included from Base

#backend, #perform

Class Method Details

.clearObject



37
38
39
40
41
# File 'lib/async_cache/workers/sidekiq.rb', line 37

def self.clear
  queue = Sidekiq::Queue.new sidekiq_queue

  queue.clear
end

.enqueue_async_job(key:, version:, expires_in:, block:, arguments:) ⇒ Object



43
44
45
# File 'lib/async_cache/workers/sidekiq.rb', line 43

def self.enqueue_async_job(key:, version:, expires_in:, block:, arguments:)
  self.perform_async key, version, expires_in, arguments, block
end

.has_workers?Boolean

Use the Sidekiq API to see if there are worker processes available to handle the async cache jobs queue.

Returns:

  • (Boolean)


26
27
28
29
30
31
32
33
34
35
# File 'lib/async_cache/workers/sidekiq.rb', line 26

def self.has_workers?
  processes = Sidekiq::ProcessSet.new.to_a
  queues_being_processed = processes.flat_map { |p| p['queues'] }

  if queues_being_processed.include? sidekiq_queue
    true
  else
    false
  end
end

.sidekiq_queueObject (private)



49
50
51
# File 'lib/async_cache/workers/sidekiq.rb', line 49

def self.sidekiq_queue
  self.sidekiq_options['queue'].to_s
end