celery 停止任务_[开发]使用Celery,异步的开始

本文讲述了将Django中的同步代码改为使用Celery进行异步处理的需求背景,详细介绍了安装Celery、启动worker、配置Django项目的步骤,以及在实际操作中遇到的问题,如参数序列化问题和生产环境的连接错误,并提供了相应的解决方案。
摘要由CSDN通过智能技术生成

1、需求:

需要把一部分代码改为异步执行。

网站在记录访客IP,然后通过调用第三方API获取IP相关信息,最后将IP和信息一起保存下来,再响应客户端。其中第三方API调用频率有限制。1s不能超过5次,于是中间有个time.sleep。原本这3个步骤是同步执行,每次都在sleep这一步阻塞,拖慢了网页的响应速度。

所以现在把日志记录这一块拆出来,改为异步执行:日志记录sleep的时候,可以继续执行其他的IO。

参考:异步任务队列Celery在Django中的使用 - zni.feng - 博客园

(这篇文章思路看起来很清晰,但照做报错,按照搜到的办法也解决不了,后来才发现是版本不匹配:它是Celery3.x+ Django-celery,对应Django 1.8--;Django 1.8++应当对应Celery 4.x,且已经自动集成Django-celery。变化很大,不能参考。)

这里一个提醒是:解决问题一定要检查版本,最好还是参考官网!

这是官方示例:

celery/celery​github.com
a6526b97e40cbdd639c5c40b9a170fd4.png

我的环境: Django2.1 + Celery 4.2.1。

2、安装(最简单)

pip install celery

官网示例的requirements:

# https://github.com/celery/celery/blob/master/examples/django/requirements.txt
django>=1.9.8
sqlalchemy>=1.0.14
celery>=4.0
有说装rabbitmq-server 做消息队列,装了但好像目前没用上:
sudo apt-get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值