今天早上我开始玩 Celery 和 RabbitMQ 并定义了一些基本任务来看看我的服务器上的性能将如何提高。
我已经添加了我的 rabbitmq 用户、vhosts 并设置了我的权限。启动我的 RabbitMQ 服务器
在一个非常详细的教程中,我发现这些人使用 celerybeat 和 celeryd 来查看某些任务的状态,并执行它们。
您是否还需要芹菜,或者我采取的步骤是否足够?
我在任何地方都没有看到有关此的任何信息或注释...只是问
今天早上我开始玩 Celery 和 RabbitMQ 并定义了一些基本任务来看看我的服务器上的性能将如何提高。
我已经添加了我的 rabbitmq 用户、vhosts 并设置了我的权限。启动我的 RabbitMQ 服务器
在一个非常详细的教程中,我发现这些人使用 celerybeat 和 celeryd 来查看某些任务的状态,并执行它们。
您是否还需要芹菜,或者我采取的步骤是否足够?
我在任何地方都没有看到有关此的任何信息或注释...只是问
好吧,您需要运行某种 celery 进程才能处理队列中的任务。celeryd 进程监听队列,并根据你的设置执行任务。如果您没有运行 celeryd 进程,您只会将任务添加到队列中,但永远不会清空它。
如果您只是对查看队列感兴趣,我建议您安装RabbitMQ 管理插件。
http://ask.github.com/celery/getting-started/introduction.html
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