From c532e3da9e181c6454d8650428651cccf9e4e6a5 Mon Sep 17 00:00:00 2001 From: "al@openerp.com" <> Date: Fri, 5 Apr 2013 02:11:12 +0200 Subject: [PATCH] [FIX] workers limit cron memory usage bzr revid: al@openerp.com-20130405001112-gknqvx0iyjmu1ona --- openerp/service/workers.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openerp/service/workers.py b/openerp/service/workers.py index e85e8d1a43c..1ff81c5e537 100644 --- a/openerp/service/workers.py +++ b/openerp/service/workers.py @@ -229,6 +229,9 @@ class Worker(object): self.request_max = multi.limit_request self.request_count = 0 + def setproctitle(self, title=""): + setproctitle('openerp: %s %s %s' % (self.__class__.__name__, self.pid, title)) + def close(self): os.close(self.watchdog_pipe[0]) os.close(self.watchdog_pipe[1]) @@ -278,7 +281,7 @@ class Worker(object): def start(self): self.pid = os.getpid() - setproctitle('openerp: %s %s' % (self.__class__.__name__, self.pid)) + self.setproctitle() _logger.info("Worker %s (%s) alive", self.__class__.__name__, self.pid) # Reseed the random number generator random.seed() @@ -381,6 +384,7 @@ class WorkerCron(Worker): if len(db_names): self.db_index = (self.db_index + 1) % len(db_names) db_name = db_names[self.db_index] + self.setproctitle(db_name) if rpc_request_flag: start_time = time.time() start_rss, start_vms = psutil.Process(os.getpid()).get_memory_info() @@ -390,6 +394,7 @@ class WorkerCron(Worker): import base acquired = base.ir.ir_cron.ir_cron._acquire_job(db_name) if not acquired: + openerp.modules.registry.RegistryManager.delete(db_name) break # dont keep cursors in multi database mode if len(db_names) > 1: