Class: Gitlab::SidekiqMiddleware::PauseControl::Strategies::Base

Inherits:
Object
  • Object
show all
Extended by:
Utils::Override
Defined in:
lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb

Direct Known Subclasses

None, Zoekt

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utils::Override

extended, extensions, included, method_added, override, prepended, queue_verification, verify!

Class Method Details

.should_pause?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb', line 10

def self.should_pause?
  new.should_pause?
end

Instance Method Details

#perform(job) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb', line 24

def perform(job)
  if should_pause?
    pause_job!(job)

    return
  end

  yield
end

#schedule(job) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb', line 14

def schedule(job)
  if should_pause?
    pause_job!(job)

    return
  end

  yield
end

#should_pause?Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


34
35
36
37
38
39
# File 'lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb', line 34

def should_pause?
  # All children must implement this method
  # return false when the jobs shouldn't be paused and true when it should
  # A cron job PauseControl::ResumeWorker will execute this method to check if jobs should remain paused
  raise NotImplementedError
end