lib/outboxable/polling_publisher_worker.rb in outboxable-0.1.2 vs lib/outboxable/polling_publisher_worker.rb in outboxable-0.1.3
- old
+ new
@@ -2,13 +2,15 @@
class PollingPublisherWorker
include Sidekiq::Job
sidekiq_options queue: 'critical'
def perform
- Outbox.pending.find_in_batches(batch_size: 100).each do |batch|
+ Outbox.pending.where(last_attempted_at: [..Time.zone.now, nil]).find_in_batches(batch_size: 100).each do |batch|
batch.each do |outbox|
+ # This is to prevent a job from being retried too many times. Worst-case scenario is 1 minute delay in jobs.
+ outbox.update(last_attempted_at: 1.minute.from_now)
Outboxable::Worker.perform_async(outbox.id)
end
end
end
end
-end
\ No newline at end of file
+end