module SafePgMigrations::StatementRetrier
Constants
- RETRIABLE_SCHEMA_STATEMENTS
Private Instance Methods
retry_if_lock_timeout() { || ... }
click to toggle source
# File lib/safe-pg-migrations/plugins/statement_retrier.rb, line 18 def retry_if_lock_timeout remaining_tries = SafePgMigrations.config.max_tries begin remaining_tries -= 1 yield rescue ActiveRecord::LockWaitTimeout raise if transaction_open? # Retrying is useless if we're inside a transaction. raise unless remaining_tries > 0 retry_delay = SafePgMigrations.config.retry_delay SafePgMigrations.say "Retrying in #{retry_delay} seconds...", true sleep retry_delay SafePgMigrations.say 'Retrying now.', true retry end end