lib/templates/activerecrod_outbox.rb in outboxable-1.0.4 vs lib/templates/activerecrod_outbox.rb in outboxable-1.0.5

- old
+ new

@@ -2,11 +2,11 @@ attribute :allow_publish, :boolean, default: true before_save :check_publishing # Callbacks before_create :set_last_attempted_at - after_save :publish, if: :allow_publish + after_commit :publish, if: :allow_publish? # Enums enum status: { pending: 0, processing: 1, published: 2, failed: 3 } enum size: { single: 0, batch: 1 } # Validations @@ -18,11 +18,15 @@ def set_last_attempted_at self.last_attempted_at = 10.seconds.from_now end def publish - Outboxable::Worker.perform_async(id) - update(status: :processing, last_attempted_at: 1.minute.from_now, allow_publish: false) + # Run this in own thread + threaded = Thread.new do + Outboxable::Worker.perform_inline(id) + update(status: :processing, last_attempted_at: 1.minute.from_now, allow_publish: false) + end + threaded.join end def check_publishing self.allow_publish = false if published? end