这是来自邮件列表的交叉帖子,希望能得到更多的关注。(原帖)
使用运行celery worker -p eventlet
时,Celery 会自动修补我的代码吗?
文档没有提到任何关于必须打补丁的事情,官方示例也没有做任何明确的打补丁(甚至 gevent 示例也没有做任何打补丁)。该示例暗示修补是自动完成的,但没有明确/明确的答案。
当你运行celery worker
函数时,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)