Skip to content

Commit 1c37410

Browse files
committed
pool usage average populated from report greenlet
1 parent ed9bafe commit 1c37410

1 file changed

Lines changed: 4 additions & 14 deletions

File tree

mrq/worker.py

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ def __init__(self):
5555
self.process = psutil.Process(os.getpid())
5656
self.greenlet = gevent.getcurrent()
5757
self.graceful_stop = None
58-
self.pool_usage_average = 0
5958

6059
self.idle_event = gevent.event.Event()
6160
self.idle_wait_count = 0
@@ -68,6 +67,7 @@ def __init__(self):
6867
self.name = "%s.%s" % (socket.gethostname().split(".")[0], os.getpid())
6968

7069
self.pool_size = self.config["greenlets"]
70+
self.pool_usage_average = MovingAverage((60 / self.config["report_interval"] or 1))
7171

7272
from .logger import LogHandler
7373
self.log_handler = LogHandler(quiet=self.config["quiet"])
@@ -227,16 +227,6 @@ def greenlet_subqueues(self):
227227

228228
time.sleep(self.config["subqueues_refresh_interval"])
229229

230-
def greenlet_pool_usage_average(self, interval=10):
231-
232-
moving_average = MovingAverage(6)
233-
234-
while True:
235-
free_pool_slots = self.gevent_pool.free_count()
236-
total_started = (self.pool_size - free_pool_slots)
237-
self.pool_usage_average = moving_average.next(total_started)
238-
time.sleep(interval)
239-
240230
def get_memory(self):
241231
mmaps = self.process.get_memory_maps()
242232
mem = {
@@ -316,11 +306,13 @@ def get_worker_report(self, with_memory=False):
316306
else:
317307
io[k] = sorted(v.items(), reverse=True, key=lambda x: x[1])
318308

309+
used_pool_slots = self.gevent_pool.free_count() - self.pool_size
310+
319311
return {
320312
"status": self.status,
321313
"config": {k: v for k, v in self.config.iteritems() if k in whitelisted_config},
322314
"done_jobs": self.done_jobs,
323-
"pool_usage_average": self.pool_usage_average,
315+
"pool_usage_average": self.pool_usage_average.next(used_pool_slots),
324316
"datestarted": self.datestarted,
325317
"datereported": datetime.datetime.utcnow(),
326318
"name": self.name,
@@ -430,8 +422,6 @@ def work_init(self):
430422

431423
self.greenlets["logs"] = gevent.spawn(self.greenlet_logs)
432424

433-
self.greenlets["pool_usage_average"] = gevent.spawn(self.greenlet_pool_usage_average)
434-
435425
if self.config["scheduler"]:
436426
self.greenlets["scheduler"] = gevent.spawn(self.greenlet_scheduler)
437427

0 commit comments

Comments
 (0)