Skip to content

Commit

Permalink
Optimize Control.retry_on_unique_violation (#35)
Browse files Browse the repository at this point in the history
  • Loading branch information
tycooon authored Oct 28, 2024
1 parent 6405165 commit 63d2ba3
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
umbrellio-utils (1.5.2)
umbrellio-utils (1.5.3)
memery (~> 1)

GEM
Expand Down
7 changes: 6 additions & 1 deletion lib/umbrellio_utils/control.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ def run_in_interval(interval, key:)
end

def retry_on_unique_violation(
times: Float::INFINITY, retry_on_all_constraints: false, checked_constraints: [], &block
times: Float::INFINITY,
retry_on_all_constraints: false,
checked_constraints: [],
&block
)
return yield if !retry_on_all_constraints && checked_constraints.empty?

retry_on(Sequel::UniqueConstraintViolation, times:) do
DB.transaction(savepoint: true, &block)
rescue Sequel::UniqueConstraintViolation => e
Expand Down
2 changes: 1 addition & 1 deletion lib/umbrellio_utils/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module UmbrellioUtils
VERSION = "1.5.2"
VERSION = "1.5.3"
end

0 comments on commit 63d2ba3

Please sign in to comment.