redis简易安装:
【Redis基础】Redis安装及管理详细教程_yum install redis-CSDN博客
1.celery的基本使用 - 阿明明 - 博客园 (cnblogs.com)
hello.py
# -*- coding: UTF-8 -*-
from celery import Celery
# 定义 broker 和 backend 的 URL
broker = 'redis://127.0.0.1:6379/1'
backend = 'redis://127.0.0.1:6379/2'
# 创建 Celery 实例
cel = Celery('test', backend=backend, broker=broker)
# 定义一个任务
@cel.task
def add(x, y):
return x + y
celery worker启动,如何查看日志
celery -A hello worker -l info -f /apps/celery1.log &
再启动一个worker
celery -A hello worker -l info -f /apps/celery2.log &
# -*- coding: UTF-8 -*-
from hello import *
#result = add.delay(2,2)
#print(result.id)
# 获取结果
#print(result.get()) # 输出 4
result = cel.send_task('hello.add', args=[3, 2])
print(result.get())
#result = add.delay(3, 2)
#print(result.get())
python3 produce-task.py
后台启动了2个worker,在一个worker的日志里面可以看到返回结果
注意:
result = cel.send_task('hello.add', args=[3, 2])
print(result.get()) 放在单独文件就可以运行了
是的,您提到的这段代码需要放在一个单独的文件中运行,并且这个文件不在 Celery worker 的启动脚本中。这是因为 cel.send_task
和 result.get()
需要在 worker 外部调用,以便它们可以在 Celery worker 启动后发送任务并获取结果。