Skip to content

Commit 3b053cf

Browse files
committed
only sleep if there were no events processed, update defaults
1 parent 9fffcf1 commit 3b053cf

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

lib/journaled.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ module Journaled
3131
mattr_writer(:transactional_batching_enabled) { true }
3232

3333
# Worker configuration (for Outbox-style event processing)
34-
mattr_accessor(:worker_batch_size) { 500 }
35-
mattr_accessor(:worker_poll_interval) { 5 } # seconds
34+
mattr_accessor(:worker_batch_size) { 1000 }
35+
mattr_accessor(:worker_poll_interval) { 1 } # seconds
3636

3737
def self.transactional_batching_enabled?
3838
Thread.current[:journaled_transactional_batching_enabled] || @@transactional_batching_enabled

lib/journaled/outbox/worker.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ def run_loop
6060
break
6161
end
6262

63+
events_processed = 0
6364
begin
64-
process_batch
65+
events_processed = process_batch
6566
emit_metrics_if_needed
6667
rescue StandardError => e
6768
Rails.logger.error("Worker error: #{e.class} - #{e.message}")
@@ -70,14 +71,17 @@ def run_loop
7071

7172
break if shutdown_requested
7273

73-
sleep(Journaled.worker_poll_interval)
74+
# Only sleep if no events were processed to prevent excessive polling on empty table
75+
sleep(Journaled.worker_poll_interval) if events_processed.zero?
7476
end
7577
end
7678

7779
def process_batch
7880
stats = processor.process_batch
7981

8082
instrument_batch_results(stats)
83+
84+
stats[:succeeded] + stats[:failed_permanently]
8185
end
8286

8387
def instrument_batch_results(stats)

0 commit comments

Comments
 (0)