celery 框架和搭建_haha


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 &


task-produce.py

# -*- 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 框架和搭建_haha_02

是的,您提到的这段代码需要放在一个单独的文件中运行,并且这个文件不在 Celery worker 的启动脚本中。这是因为 cel.send_taskresult.get() 需要在 worker 外部调用,以便它们可以在 Celery worker 启动后发送任务并获取结果。