[FIX] workers limit cron memory usage

bzr revid: al@openerp.com-20130405001112-gknqvx0iyjmu1ona
This commit is contained in:
al@openerp.com
2013-04-05 02:11:12 +02:00
parent 648f45f2ed
commit c532e3da9e
+6 -1
View File
@@ -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: