解決不能用root用戶啓動Celery Worker的問題

一、報錯演示

(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

二、問題解決

  1. 方法一:暫時解決問題
    在服務器輸入以下命令

    export C_FORCE_ROOT="true"
    
  2. 方法二:永久解決問題

    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
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章