当我使用sudo运行celery worker时,出现以下错误:

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

我的 C_FORCE_ROOT 环境变量也是 true :
echo $C_FORCE_ROOT
true

更多信息:
Python-> 2.7.6
celery -> 3.1.23(Cipater)
操作系统-> Linux(Ubuntu 14.04)

我应该如何用sudo运行 celery ?我知道它并不安全,但出于某些原因,我确实需要这样做!

最佳答案

确定,我找到了解决方案!
在celery 3.1及更高版本中,具有腌制序列化的 worker 将崩溃,如documentation中所述:



因此要使用sudo,您需要在celery配置中禁用pickle序列化。我使用json做到了:

app.conf.update(
     CELERY_ACCEPT_CONTENT = ['json'],
     CELERY_TASK_SERIALIZER = 'json',
     CELERY_RESULT_SERIALIZER = 'json',
)

然后,如果您使用sudo运行,它将起作用!

关于python - 如何由 super 用户运行 celery worker ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37376684/

10-16 03:53