Skip to content

Commit e9c7d55

Browse files
committed
shorten default sleep, always sleep between batches to prevent excessive database polling
1 parent 8aba2f0 commit e9c7d55

File tree

2 files changed

+3
-11
lines changed

2 files changed

+3
-11
lines changed

lib/journaled.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ module Journaled
3434

3535
# Worker configuration (for Outbox-style event processing)
3636
mattr_accessor(:worker_batch_size) { 500 }
37-
mattr_accessor(:worker_poll_interval) { 1 } # seconds
37+
mattr_accessor(:worker_poll_interval) { 0.5 } # seconds
3838
mattr_accessor(:outbox_processing_mode) { :batch } # :batch or :guaranteed_order
3939

4040
def self.transactional_batching_enabled?

lib/journaled/outbox/worker.rb

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

63-
events_processed = 0
6463
begin
65-
events_processed = process_batch
64+
process_batch
6665
emit_metrics_if_needed
6766
rescue StandardError => e
6867
Rails.logger.error("Worker error: #{e.class} - #{e.message}")
@@ -71,20 +70,13 @@ def run_loop
7170

7271
break if shutdown_requested
7372

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?
73+
sleep(Journaled.worker_poll_interval)
7674
end
7775
end
7876

7977
def process_batch
8078
stats = processor.process_batch
8179

82-
instrument_batch_results(stats)
83-
84-
stats[:succeeded] + stats[:failed_permanently]
85-
end
86-
87-
def instrument_batch_results(stats)
8880
metric_emitter.emit_batch_metrics(stats)
8981
end
9082

0 commit comments

Comments
 (0)