这是来自邮件列表的交叉帖子,希望能够更多地关注这个问题. (original post)
当使用运行celery worker -p eventlet时,Celery会自动对我的代码进行猴子修补吗?
docs没有提到任何关于必须进行修补的事情,official example也没有做任何明确的修补(即使gevent example也没有进行任何修补).修补程序自动完成示例hints,但没有明确/明确的答案.
最佳答案
当您运行芹菜工作时,函数
execute_from_commandline
调用celery.__init__.maybe_patch_concurrency
调用_patch_eventlet
,其执行:
def _patch_eventlet():
import eventlet
import eventlet.debug
eventlet.monkey_patch()
blockdetect = float(os.environ.get('EVENTLET_NOBLOCK',0))
if blockdetect:
eventlet.debug.hub_blocking_detection(blockdetect,blockdetect)