下载redis
docker run --name redis --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -d -p 6379:6379 registry.cn-hangzhou.aliyuncs.com/k8s-a/redis:6.2
检查redis状态
docker exec -it redis bash
redis-cli
进入djangoa项目的虚拟环境
需要管理员权限
cd E:\mysite\celery.venv\Scripts
activate.bat
cd E:\mysite\celery\
windows上运行celery需要安装gevent
celery -A celery_test.tasks worker -l info -P gevent
linux上运行celery
celery -A celery_test.tasks worker -l info
步骤 3:配置 Celery 应用的结果后端
在 tasks.py
文件中,配置 Celery 应用的 result_backend
,比如使用 Redis 作为后端:
from celery import Celery
# 配置 Celery 应用
app = Celery('tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
@app.task
def add(x, y):
return x + y
broker
用于任务队列,Redis 也可以作为消息代理(broker)。backend
用于存储任务结果和状态,在这里我们使用 Redis 作为后端。
步骤 4:启动 Celery Worker
确保 Celery worker 正在运行:
celery -A tasks worker --loglevel=info
步骤 5:执行任务并查询结果
现在,你可以正常发布任务,并使用 ready()
和 get()
方法来查询任务的状态和结果。
from tasks import add
# 发布任务
result = add.delay(4, 6)
# 检查任务是否完成
if result.ready():
print("任务已完成: ", result.result)
else:
print("任务还在执行")
# 获取任务结果(阻塞方式)
result_value = result.get(timeout=10)
print("任务结果: ", result_value)
参考链接
celery任务调用
celery + rabbitmq初步
celery demo
flower useage
django with celery
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)