一、报错演示
(venv) [root@localhost celery_tasks]# celery -A tasks worker -l info
Running a worker with superuser privileges when the
worker accepts messages serialized with pickle is a very bad idea!
If you really want to continue then you have to set the C_FORCE_ROOT
environment variable (but please think about this before you do).
User information: uid=0 euid=0 gid=0 egid=0
(venv) [root@localhost celery_tasks]#
翻译一下
当worker接受用pickle序列化的消息时,以超级用户权限运行worker是一个非常糟糕的主意!
如果您确实要继续,则必须设置C_FORCE_ROOT
环境变量(但请在使用前先考虑一下)。
用户信息:uid = 0 euid = 0 gid = 0 egid = 0
二、问题解决
-
方法一:暂时解决问题
在服务器输入以下命令export C_FORCE_ROOT="true"
-
方法二:永久解决问题
from celery import Celery,platforms #导入platforms app = Celery('celery_tasks.tasks', broker='redis://127.0.0.1:6379/1') platforms.C_FORCE_ROOT = True #加上这一行 @app.task def test(): pass