Kouhei Sutou
null+****@clear*****
Sun Mar 23 22:03:56 JST 2014
Kouhei Sutou 2014-03-23 22:03:56 +0900 (Sun, 23 Mar 2014) New Revision: 791ed6ec57247237545540c9ac1ed6f9df5e3de8 https://github.com/droonga/fluent-plugin-droonga/commit/791ed6ec57247237545540c9ac1ed6f9df5e3de8 Message: job pusher: log queue statistics Modified files: lib/droonga/job_pusher.rb Modified: lib/droonga/job_pusher.rb (+33 -0) =================================================================== --- lib/droonga/job_pusher.rb 2014-03-23 20:43:18 +0900 (8a9e4a2) +++ lib/droonga/job_pusher.rb 2014-03-23 22:03:56 +0900 (23e733b) @@ -62,11 +62,15 @@ module Droonga end class JobQueue + include Loggable + def initialize(loop) @loop = loop @buffers = [] @ready_workers = [] @workers = [] + @many_jobs_report_interval = 100 + update_many_jobs_threshold end def close @@ -77,6 +81,7 @@ module Droonga def add_worker(worker) @workers << worker + update_many_jobs_threshold worker.on_ready = lambda do |ready_worker| supply_job(ready_worker) end @@ -86,6 +91,7 @@ module Droonga job = message.to_msgpack if @ready_workers.empty? @buffers << job + report_statistics_on_push else worker = @ready_workers.shift if****@buffe*****? @@ -103,8 +109,35 @@ module Droonga @ready_workers << worker else worker.write(@buffers.shift) + report_statistics_on_pull + end + end + + def update_many_jobs_threshold + @many_jobs_threshold =****@worke***** * 100 + end + + def report_statistics_on_push + if****@buffe***** > @many_jobs_threshold + if (@buffers.size % @many_jobs_report_interval).zero? + logger.warn("push: many jobs in queue: #{@buffers.size}") + end end end + + def report_statistics_on_pull + if****@buffe***** > @many_jobs_threshold + if (@buffers.size % @many_jobs_report_interval).zero? + logger.info("pull: many jobs in queue: #{@buffers.size}") + end + elsif****@buffe***** == (@many_jobs_threshold - 1) + logger.info("pull: reducing jobs in queue: #{@buffers.size}") + end + end + + def log_tag + "job_queue" + end end class WorkerConnection -------------- next part -------------- HTML����������������������������... Télécharger