Skip to content

Commit b0abe10

Browse files
committed
Merge branch 'main' into remove-rails-dependency
2 parents f55bf81 + fe57349 commit b0abe10

File tree

2 files changed

+7
-24
lines changed

2 files changed

+7
-24
lines changed

app/models/solid_queue/semaphore.rb

+5-22
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ def self.signal_all(jobs)
2626

2727
def initialize(job)
2828
@job = job
29-
@retries = 0
3029
end
3130

3231
def wait
@@ -42,42 +41,26 @@ def signal
4241
end
4342

4443
private
45-
attr_accessor :job, :retries
44+
attr_accessor :job
4645

4746
def attempt_creation
4847
Semaphore.create!(key: key, value: limit - 1, expires_at: expires_at)
4948
true
5049
rescue ActiveRecord::RecordNotUnique
51-
attempt_decrement
50+
if limit == 1 then false
51+
else
52+
attempt_decrement
53+
end
5254
end
5355

5456
def attempt_decrement
5557
Semaphore.available.where(key: key).update_all([ "value = value - 1, expires_at = ?", expires_at ]) > 0
56-
rescue ActiveRecord::Deadlocked
57-
if retriable? then attempt_retry
58-
else
59-
raise
60-
end
6158
end
6259

6360
def attempt_increment
6461
Semaphore.where(key: key, value: ...limit).update_all([ "value = value + 1, expires_at = ?", expires_at ]) > 0
6562
end
6663

67-
def attempt_retry
68-
self.retries += 1
69-
70-
if semaphore = Semaphore.find_by(key: key)
71-
semaphore.value > 0 && attempt_decrement
72-
end
73-
end
74-
75-
MAX_RETRIES = 1
76-
77-
def retriable?
78-
retries < MAX_RETRIES
79-
end
80-
8164
def key
8265
job.concurrency_key
8366
end

solid_queue.gemspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ Gem::Specification.new do |spec|
55
spec.version = SolidQueue::VERSION
66
spec.authors = [ "Rosa Gutierrez" ]
77
spec.email = [ "[email protected]" ]
8-
spec.homepage = "http://github.com/basecamp/solid_queue"
8+
spec.homepage = "https://github.com/basecamp/solid_queue"
99
spec.summary = "Database-backed Active Job backend."
1010
spec.description = "Database-backed Active Job backend."
1111
spec.license = "MIT"
1212

1313
spec.metadata["homepage_uri"] = spec.homepage
14-
spec.metadata["source_code_uri"] = "http://github.com/basecamp/solid_queue"
14+
spec.metadata["source_code_uri"] = "https://github.com/basecamp/solid_queue"
1515

1616
spec.files = Dir.chdir(File.expand_path(__dir__)) do
1717
Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"]

0 commit comments

Comments
 (0)