Parcourir la source

Request info logs optimized away too soon

Ask Solem il y a 12 ans
Parent
commit
03046f1b7f
3 fichiers modifiés avec 18 ajouts et 6 suppressions
  1. 4 3
      celery/apps/worker.py
  2. 4 1
      celery/task/trace.py
  3. 10 2
      celery/worker/job.py

+ 4 - 3
celery/apps/worker.py

@@ -156,9 +156,6 @@ class Worker(configurated):
         self.init_queues()
         self.init_queues()
         self.app.loader.init_worker()
         self.app.loader.init_worker()
 
 
-        # apply task execution optimizations
-        trace.setup_worker_optimizations(self.app)
-
         # this signal can be used to e.g. change queues after
         # this signal can be used to e.g. change queues after
         # the -Q option has been applied.
         # the -Q option has been applied.
         signals.celeryd_after_setup.send(sender=self.hostname, instance=self,
         signals.celeryd_after_setup.send(sender=self.hostname, instance=self,
@@ -178,6 +175,10 @@ class Worker(configurated):
         self.set_process_status('-active-')
         self.set_process_status('-active-')
 
 
         self.setup_logging()
         self.setup_logging()
+
+        # apply task execution optimizations
+        trace.setup_worker_optimizations(self.app)
+
         try:
         try:
             self.run_worker()
             self.run_worker()
         except IGNORE_ERRORS:
         except IGNORE_ERRORS:

+ 4 - 1
celery/task/trace.py

@@ -355,9 +355,12 @@ def setup_worker_optimizations(app):
 
 
     trace_task_ret = _fast_trace_task
     trace_task_ret = _fast_trace_task
     try:
     try:
-        sys.modules['celery.worker.job'].trace_task_ret = _fast_trace_task
+        job = sys.modules['celery.worker.job']
     except KeyError:
     except KeyError:
         pass
         pass
+    else:
+        job.trace_task_ret = _fast_trace_task
+        job.__optimize__()
 
 
 
 
 def reset_worker_optimizations():
 def reset_worker_optimizations():

+ 10 - 2
celery/worker/job.py

@@ -41,8 +41,16 @@ from . import state
 logger = get_logger(__name__)
 logger = get_logger(__name__)
 debug, info, warn, error = (logger.debug, logger.info,
 debug, info, warn, error = (logger.debug, logger.info,
                             logger.warn, logger.error)
                             logger.warn, logger.error)
-_does_debug = logger.isEnabledFor(logging.DEBUG)
+_does_info = False
-_does_info = logger.isEnabledFor(logging.INFO)
+_does_debug = False
+
+
+def __optimize__():
+    global _does_debug
+    global _does_info
+    _does_debug = logger.isEnabledFor(logging.DEBUG)
+    _does_info = logger.isEnabledFor(logging.INFO)
+__optimize__()
 
 
 # Localize
 # Localize
 tz_utc = timezone.utc
 tz_utc = timezone.utc