Fork me on GitHub
随笔 - 234  文章 - 49 评论 - 0 阅读 - 13万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

下载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 github

redis

celery + rabbitmq初步
celery demo
flower useage
django with celery

posted on   anyux  阅读(12)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示