Skip to content

Commit f5f286b

Browse files
committed
Improve a bit some execution methods (DRY and order)
1 parent a386512 commit f5f286b

File tree

4 files changed

+8
-10
lines changed

4 files changed

+8
-10
lines changed

app/models/solid_queue/blocked_execution.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def acquire_concurrency_lock
4040
end
4141

4242
def promote_to_ready
43-
ReadyExecution.create!(job_id: job_id, queue_name: queue_name, priority: priority)
43+
ReadyExecution.create!(ready_attributes)
4444
end
4545
end
4646
end

app/models/solid_queue/execution.rb

+2-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ class Execution < SolidQueue::Record
88

99
alias_method :discard, :destroy
1010

11-
class << self
12-
def queued_as(queues)
13-
QueueParser.new(queues, self).scoped_relation
14-
end
11+
def ready_attributes
12+
attributes.slice("job_id", "queue_name", "priority")
1513
end
1614
end
1715
end

app/models/solid_queue/ready_execution.rb

+4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ def claim(queues, limit, process_id)
1313
end
1414
end
1515

16+
def queued_as(queues)
17+
QueueParser.new(queues, self).scoped_relation
18+
end
19+
1620
private
1721
def select_candidates(queues, limit)
1822
queued_as(queues).not_paused.ordered.limit(limit).lock("FOR UPDATE SKIP LOCKED").pluck(:job_id)

app/models/solid_queue/scheduled_execution.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def prepare_batch(batch)
1010
prepared_at = Time.current
1111

1212
rows = batch.map do |scheduled_execution|
13-
scheduled_execution.execution_ready_attributes.merge(created_at: prepared_at)
13+
scheduled_execution.ready_attributes.merge(created_at: prepared_at)
1414
end
1515

1616
if rows.any?
@@ -23,8 +23,4 @@ def prepare_batch(batch)
2323
SolidQueue.logger.info("[SolidQueue] Prepared scheduled batch with #{rows.size} jobs at #{prepared_at}")
2424
end
2525
end
26-
27-
def execution_ready_attributes
28-
attributes.slice("job_id", "queue_name", "priority")
29-
end
3026
end

0 commit comments

Comments
 (0)