gunicorn 在启动 worker 的时候会调用 monkey_patch,这个 patch 会影响到 celery task 的代码吗? 还是说在 task 里面我需要自己再 patch 一下?
1
cheesea OP 按我的理解,celery 执行任务的时候,依赖于本地代码,发送到 broker 的只是本地代码的路径,执行任务时,并没有运行 gunicorn 。那么比如我在 task 里调用 requests.post,其实是阻塞的。
|
2
cheesea OP 自问自答,在 celery 文档里找到的:
You must use the -P option to celery worker instead, to ensure the monkey patches aren’t applied too late, causing things to break in strange ways. 我自己试验了一下,确实不用自己再手动 patch 了 |