@@ -19,14 +19,16 @@ class Adapter
1919 }
2020 include ::ActivePublisher ::Logging
2121
22- attr_reader :async_queue , :redis_pool , :queue
22+ attr_reader :async_queue , :flush_max , :flush_min , : redis_pool, :queue
2323
2424 def initialize ( new_redis_pool )
2525 logger . info "Starting redis publisher adapter"
2626 # do something with supervision ?
2727 @redis_pool = new_redis_pool
2828 @async_queue = ::ActivePublisher ::Async ::RedisAdapter ::Consumer . new ( redis_pool )
2929 @queue = ::MultiOpQueue ::Queue . new
30+ @flush_max = ::ActivePublisher . configuration . messages_per_batch
31+ @flush_min = @flush_max / 2
3032
3133 supervisor_task = ::Concurrent ::TimerTask . new ( SUPERVISOR_INTERVAL ) do
3234 queue_size = queue . size
@@ -41,7 +43,7 @@ def initialize(new_redis_pool)
4143 def publish ( route , payload , exchange_name , options = { } )
4244 message = ::ActivePublisher ::Message . new ( route , payload , exchange_name , options )
4345 queue << ::Marshal . dump ( message )
44- flush_queue! if queue . size >= 20 || options [ :flush_queue ]
46+ flush_queue! if queue . size >= flush_min || options [ :flush_queue ]
4547
4648 nil
4749 end
@@ -58,7 +60,7 @@ def shutdown!
5860
5961 def flush_queue!
6062 return if queue . empty?
61- encoded_messages = queue . pop_up_to ( 25 , :timeout => 0.001 )
63+ encoded_messages = queue . pop_up_to ( flush_max , :timeout => 0.001 )
6264
6365 return if encoded_messages . nil?
6466 return unless encoded_messages . respond_to? ( :each )
0 commit comments