class Nandi::TimeoutPolicies::Concurrent

Attributes

migration[RW]

Public Class Methods

new(migration) click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 16
def initialize(migration)
  @migration = migration
end
validate(migration) click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 12
def self.validate(migration)
  new(migration).validate
end

Public Instance Methods

validate() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 20
def validate
  collect_errors(
    validate_statement_timeout,
    validate_lock_timeout,
  )
end

Private Instance Methods

lock_timeout_high_enough() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 51
def lock_timeout_high_enough
  migration.lock_timeout >= minimum_lock_timeout
end
minimum_lock_timeout() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 55
def minimum_lock_timeout
  Nandi.config.concurrent_lock_timeout_limit
end
minimum_statement_timeout() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 59
def minimum_statement_timeout
  Nandi.config.concurrent_statement_timeout_limit
end
statement_timeout_high_enough() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 47
def statement_timeout_high_enough
  migration.statement_timeout >= minimum_statement_timeout
end
validate_lock_timeout() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 39
def validate_lock_timeout
  assert(
    migration.disable_lock_timeout? || lock_timeout_high_enough,
    "lock timeout for concurrent operations "\
    "must be at least #{minimum_lock_timeout}",
  )
end
validate_statement_timeout() click to toggle source
# File lib/nandi/timeout_policies/concurrent.rb, line 31
def validate_statement_timeout
  assert(
    migration.disable_statement_timeout? || statement_timeout_high_enough,
    "statement timeout for concurrent operations "\
    "must be at least #{minimum_statement_timeout}",
  )
end