windows celery OSError: [WinError 6] 句柄无效
Windows下运行需要安装gevent
库,并使用-P gevent
参数指定使用gevent
pip install gevent
celery -A celery_app worker -l info -P gevent
任务执行报 PermissionError
或 OSError
错误
报错信息类似:
Pool process <billiard.pool.Worker object at 0x000001B328636B50> error: PermissionError(13, '拒绝访问。', None, 5, None)
OSError: [WinError 6] 句柄无效。
PermissionError: [WinError 5] 拒绝访问。
所有报错都是这个原因。Windows不支持fork
,所以无法使用Celery默认的prefork
,需要使用gevent
等替代方案。