[IMP] base : Improved the typos.
[odoo/odoo.git] / openerp / cron.py
index b1c5819..7b67877 100644 (file)
@@ -45,6 +45,9 @@ import threading
 import time
 
 import openerp
+import tools
+
+_logger = logging.getLogger(__name__)
 
 # Heapq of database wake-ups. Note that 'database wake-up' meaning is in
 # the context of the cron management. This is not originally about loading
@@ -83,8 +86,6 @@ _thread_slots = None
 # A (non re-entrant) lock to protect the above _thread_slots variable.
 _thread_slots_lock = threading.Lock()
 
-_logger = logging.getLogger('cron')
-
 # Sleep duration limits - must not loop too quickly, but can't sleep too long
 # either, because a new job might be inserted in ir_cron with a much sooner
 # execution date than current known ones. We won't see it until we wake!
@@ -175,9 +176,10 @@ def runner_body():
             timestamp, db_name, canceled = task
             if canceled:
                 continue
+            del _wakeup_by_db[db_name]
             registry = openerp.pooler.get_pool(db_name)
             if not registry._init:
-                _logger.debug("Database '%s' wake-up! Firing cron jobs in multithreads", db_name)
+                _logger.debug("Database '%s' wake-up! Firing multi-threaded cron job processing", db_name)
                 registry['ir.cron']._run_jobs_multithread()
     amount = MAX_SLEEP
     with _wakeups_lock:
@@ -197,6 +199,11 @@ def start_master_thread():
     """
     global _thread_slots
     _thread_slots = openerp.conf.max_cron_threads
+    db_maxconn = tools.config['db_maxconn']
+    if _thread_slots >= tools.config.get('db_maxconn', 64):
+        _logger.warning("Connection pool size (%s) is set lower than max number of cron threads (%s), "
+                        "this may cause trouble if you reach that number of parallel cron tasks.",
+                        db_maxconn, _thread_slots)
     t = threading.Thread(target=runner, name="openerp.cron.master_thread")
     t.setDaemon(True)
     t.start()