def setup_worker_optimizations(app): global _tasks global trace_task_ret # make sure custom Task.__call__ methods that calls super # will not mess up the request/task stack. _install_stack_protection() # all new threads start without a current app, so if an app is not # passed on to the thread it will fall back to the "default app", # which then could be the wrong app. So for the worker # we set this to always return our app. This is a hack, # and means that only a single app can be used for workers # running in the same process. app.set_current() set_default_app(app) # evaluate all task classes by finalizing the app. app.finalize() # set fast shortcut to task registry _tasks = app._tasks trace_task_ret = _fast_trace_task from celery.worker import job as job_module job_module.trace_task_ret = _fast_trace_task job_module.__optimize__()