Celery和Django结合(一)

tech2026-03-12  6

Celery和Django结合(一) Windows下安装Celery过程记录

背景

最近项目中遇到一个问题,需要定时执行任务,选择通过celery来实现。 计划步骤: 1.Celery基本使用,启用多个workers

2.Celery 定时任务

3.与django结合,通过django配置celery periodic task

本地环境

本地环境如下:

windows 10pyhon3.6cerlery4.4.7redis3.2

执行步骤

redis安装: Window 下安装 下载地址:https://github.com/tporadowski/redis/releases。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 D 盘,解压后,将文件夹重新命名为 redis。 打开文件夹,内容如下: 打开一个 cmd 窗口 使用 cd 命令切换目录到 D:\redis 运行: redis-server.exe redis.windows.conf 如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面: 窗口不要关闭,不然就无法访问服务端了。

下载celery pip install celery 如果有多个python版本记得指定python36对应的pip进行下载

celery调试

创建tasks.py

from celery import Celery app = Celery('tasks', broker='redis://localhost', backend='redis://localhost') @app.task def add(x, y): print("running...", x, y) return x + y

步骤1.进入task.py同级目录,cmd窗口执行命令 celery -A tasks worker --loglevel=info 步骤2.输入 python36 form tasks import add result = add.delay(2,2) result.get()

发现celery 窗口报错,如下: 解决方案如下: 1.pip install eventlet 2.将celery -A tasks worker --loglevel=info替换为新的命令 celery -A tasks worker -l info -P eventlet 重新执行步骤2 成功打印出结果 备注: 怎么启动多个worker,开启多个cmd窗口,执行命令 celery -A tasks worker --loglevel=info

崽崽看不懂就问我,后面我继续写 2.Celery 定时任务 3.与django结合

最新回复(0)