@@ -156,9 +156,6 @@ class Worker(configurated):
self.init_queues()
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
# the -Q option has been applied.
signals.celeryd_after_setup.send(sender=self.hostname, instance=self,
@@ -178,6 +175,10 @@ class Worker(configurated):
self.set_process_status('-active-')
self.setup_logging()
+
+ # apply task execution optimizations
+ trace.setup_worker_optimizations(self.app)
try:
self.run_worker()
except IGNORE_ERRORS:
@@ -355,9 +355,12 @@ def setup_worker_optimizations(app):
trace_task_ret = _fast_trace_task
- sys.modules['celery.worker.job'].trace_task_ret = _fast_trace_task
+ job = sys.modules['celery.worker.job']
except KeyError:
pass
+ else:
+ job.trace_task_ret = _fast_trace_task
+ job.__optimize__()
def reset_worker_optimizations():
@@ -41,8 +41,16 @@ from . import state
logger = get_logger(__name__)
debug, info, warn, error = (logger.debug, logger.info,
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
tz_utc = timezone.utc