Celery:运行具有超级用户权限的worker

时间:2014-07-05 19:21:11

标签: python django celery

我使用runit作为用户而不是root用户启动了芹菜进程。当我查看svlogd日志时,我看到:

2014-07-05_10:07:44.10586 Running a worker with superuser privileges when the
2014-07-05_10:07:44.10589 worker accepts messages serialized with pickle is a very bad idea!
2014-07-05_10:07:44.10589 
2014-07-05_10:07:44.10589 If you really want to continue then you have to set the C_FORCE_ROOT
2014-07-05_10:07:44.10589 environment variable (but please think about this before you do).
2014-07-05_10:07:44.10589 
2014-07-05_10:07:44.10590 User information: uid=0 euid=0 gid=0 egid=0

似乎celery以root身份运行,但是当我运行ps aux时,它实际上是以预期用户身份运行的:

jwes     2046  0.0  1.1 226172 45260 ?        S    19:01   0:00 /home/jwes/.virtualenvs/my-app/bin/python manage.py celeryd -E -l INFO -B
fezah     2047  0.0  1.1 217784 43008 ?        S    19:01   0:00 /home/jwes/.virtualenvs/my-app/bin/python manage.py celeryd -E -l INFO -B

任何人都知道如何解决这个问题

1 个答案:

答案 0 :(得分:0)

从另一个SO线程使用此answer。我添加了以下设置

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

它似乎有效。