Module: Nandi::TimeoutPolicies

Defined in:
lib/nandi/timeout_policies.rb,
lib/nandi/timeout_policies/concurrent.rb,
lib/nandi/timeout_policies/access_exclusive.rb

Defined Under Namespace

Classes: AccessExclusive, Concurrent, Noop

Constant Summary collapse

CONCURRENT_OPERATIONS =
%i[add_index remove_index].freeze

Class Method Summary collapse

Class Method Details

.policy_for(instruction) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/nandi/timeout_policies.rb', line 21

def self.policy_for(instruction)
  case instruction.lock
  when Nandi::Migration::LockWeights::ACCESS_EXCLUSIVE
    AccessExclusive
  else
    share_policy_for(instruction)
  end
end

.share_policy_for(instruction) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/nandi/timeout_policies.rb', line 30

def self.share_policy_for(instruction)
  if CONCURRENT_OPERATIONS.include?(instruction.procedure)
    Concurrent
  else
    Noop
  end
end