对RabbitMQ和芹菜的新手问题

时间:2011-09-05 13:56:13

标签: django rabbitmq celery django-celery

我今天早上开始玩Celery和RabbitMQ并定义了一些基本任务,以了解性能如何在我的服务器上得到改善。

我添加了我的rabbitmq用户,vhosts并设置了我的权限。 启动了我的RabbitMQ服务器

在一个非常详细的教程中,我发现这些人使用celerybeat和celeryd来查看某个任务的状态,并执行它们。

the detailed tutorial by Rich Leland

你是否也需要芹菜,或者我采取的步骤是什么?

我没有看到任何关于此的信息或说明......只是问

2 个答案:

答案 0 :(得分:2)

好吧,你需要运行某种芹菜进程才能处理队列中的任务。 celeryd进程侦听队列,并根据您的设置执行任务。如果您没有运行celeryd进程,您只需将任务添加到队列中,但永远不会清空它。

如果您只是想看到您的队列,我建议安装RabbitMQ management plugin

答案 1 :(得分:0)

http://ask.github.com/celery/getting-started/introduction.html

  1. 启动RabbitMQ服务器
  2. 定义您的celeryconfig.py
  3. 启动你的芹菜守护进程:celeryd
  4. RabbitMQ有一个访客登录,因此这是一种更快的入门方式。把它放在celeryconfig.py:

    import sys
    sys.path.append('.')
    
    BROKER_HOST = "localhost"
    BROKER_PORT = 5672
    BROKER_USER = "guest"
    BROKER_PASSWORD = "guest"
    BROKER_VHOST = "/"
    
    CELERY_RESULT_BACKEND = "amqp"
    
    CELERY_IMPORTS = ("tasks",)
    

    要进行快速测试,请将其放在tasks.py中:

    from celery.task import task
    
    @task
    def add(x, y):
        return x + y
    
    if __name__ == "__main__":
        result = add.delay(4, 4)
        result.wait() 
    

    在同一目录中启动celeryd有celeryconfig.py和tasks.py:

    celeryd --loglevel=INFO
    

    最后,运行tasks.py

相关问题