Celery和Django结合(一)

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

背景

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

2.Celery 定时任务

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

本地环境

本地环境如下:

  1. windows 10
  2. pyhon3.6
  3. cerlery4.4.7
  4. redis3.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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值