【问题标题】:celery worker not working though rabbitmq has queue buildup芹菜工人不工作虽然rabbitmq有队列堆积
【发布时间】:2015-06-14 15:11:22
【问题描述】:

我正在与 celery 取得联系,我通过关注 Tutorial 写了一个任务,但不知何故工人没有起床,我得到了以下日志 输入命令后:

celery worker -A tasks -l debug

我得到一个日志:

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

这是我的任务:

from celery import Celery

app = Celery('tasks', backend='amqp',broker='amqp://sanjay:**@localhost:5672//')

@app.task
def gen_prime(x):
    multiples = []
    results = []
    for i in xrange(2, x+1):
        if i not in multiples:
            results.append(i)
            for j in xrange(i*i, x+1, i):
                multiples.append(j)
    return results

虽然在 rabbitmq 管理控制台中,当我尝试在 ipython 控制台中生成素数时看到一些队列建立,但我没有在控制台上返回结果。

这是我的控制台操作:

>>> from tasks import gen_prime
>>> pr=gen_prime.delay(10000)
>>> pr.ready()
False
>>> 
>>> pr.ready()
False
>>> pr.ready()
False

我正在尝试从过去 3 天开始解决这个问题,但我无法解决它。

【问题讨论】:

    标签: python python-2.7 rabbitmq celery digital-ocean


    【解决方案1】:

    错误消息几乎可以告诉您在这种情况下发生了什么。您正在尝试以 root 身份运行工作人员(由于安全问题,这通常是一个坏主意)。如果你想覆盖它并让它运行,你必须设置你的环境:

    export C_FORCE_ROOT="true"
    

    然后运行worker。

    或者您可以以其他用户身份运行它,这是首选。您可以搜索如何添加用户。然后,您只需以该用户或 su 身份登录并执行您的工作人员。

    既然你标记了这个数字海洋,这里是他们关于如何添加用户的教程的链接:

    https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-ubuntu-12-04-and-centos-6

    此外,celery 有一些关于如何守护进程的文档。我通常使用supervisord方法。

    https://celery.readthedocs.org/en/latest/tutorials/daemonizing.html#centos

    【讨论】:

      【解决方案2】:

      不要以 root 身份运行 celery worker。

      我建议使用supervisord 来管理 celery worker - 您可以使用 user 配置指令来指定运行 celery worker 的用户。

      【讨论】:

      • 你能告诉我该怎么做吗?我是 celery 新手,找不到任何关于它的文档!
      • 你是如何运行命令celery worker -A tasks -l debug 的?从命令行?如果是这样,只需登录其他用户即可。
      猜你喜欢
      • 2014-06-09
      • 2023-04-08
      • 2015-10-19
      • 2014-11-24
      • 2019-03-13
      • 2017-08-15
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      相关资源
      最近更新 更多