一、報錯演示
(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