Skip to content

Commit aeab5ae

Browse files
add the feature as an option + update README
1 parent a3e7ff4 commit aeab5ae

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,9 @@ SafePgMigrations.config.safe_timeout = 5.seconds # Statement timeout used for al
329329

330330
SafePgMigrations.config.lock_timeout = nil # Lock timeout used for all DDL operations except from CREATE / DROP INDEX. If not set, safe_timeout will be used with a deduction of 1% to ensure that the lock timeout is raised in priority
331331

332-
SafePgMigrations.config.max_lock_timeout_for_retry = 1.second # Max lock timeout for the retries for all DDL operations except from CREATE / DROP INDEX. Each retry will increase the lock_timeout by (max_lock_timeout_for_retry - lock_timeout) / max_tries
332+
SafePgMigrations.config.increase_lock_timeout_on_retry # Activate the lock timeout increase feature on retry if set to true. See max_lock_timeout_for_retry for more information.
333+
334+
SafePgMigrations.config.max_lock_timeout_for_retry = 1.second # Max lock timeout for the retries for all DDL operations except from CREATE / DROP INDEX. Each retry will increase the lock_timeout (if increase_lock_timeout_on_retry option is set to true) by (max_lock_timeout_for_retry - lock_timeout) / max_tries
333335

334336
SafePgMigrations.config.blocking_activity_logger_verbose = true # Outputs the raw blocking queries on timeout. When false, outputs information about the lock instead
335337

lib/safe-pg-migrations/configuration.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class Configuration
1313
max_tries
1414
retry_delay
1515
sensitive_logger
16+
increase_lock_timeout_on_retry
1617
])
1718
attr_reader :lock_timeout, :safe_timeout, :max_lock_timeout_for_retry
1819

@@ -28,6 +29,7 @@ def initialize
2829
self.max_tries = 5
2930
self.max_lock_timeout_for_retry = 1.second
3031
self.sensitive_logger = nil
32+
self.increase_lock_timeout_on_retry = false
3133
end
3234

3335
def lock_timeout=(value)

lib/safe-pg-migrations/plugins/statement_retrier.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def retry_if_lock_timeout
2828
retry_delay = SafePgMigrations.config.retry_delay
2929
Helpers::Logger.say "Retrying in #{retry_delay} seconds...", sub_item: true
3030

31-
increase_lock_timeout unless SafePgMigrations.config.lock_timeout.nil?
31+
increase_lock_timeout if SafePgMigrations.config.increase_lock_timeout_on_retry && !SafePgMigrations.config.lock_timeout.nil?
3232

3333
sleep retry_delay
3434
Helpers::Logger.say 'Retrying now.', sub_item: true

0 commit comments

Comments
 (0)