背景

  django要是针对上传文件等需要异步操作的场景时,celery是一个非常不错的选择。笔者的项目就是使用了这个组合,这里就做一个备忘吧。

安装RabbitMQ

  这个安装及使用我已经在前一篇文档中介绍过了,需要的朋友请翻阅我的前一篇文章。这里只需要记住,celery要是使用rabbitMQ的话,需要启动服务的。
具体方法:
rabbitmq-server /usr/local/etc/redis.conf

celert的安装和使用:

  这个在我的前面文章中也做了记录,想知道的朋友请看前面的文章。这里只需要知道,在django服务启动之后,才可以启动celery,启动命令如下:
celery -A myapp worker -l info

django下使用celery的步骤

  这里有几个地方需要注意一下:

  • 工程目录下新建:celery.py
  • 同目录下__init__.py文件下增加celery的引用
  • app中添加tasks.py 并添加内容
  • view视图中触发任务
    详细的步骤参考:经典案例

备注

  django使用,先启动rabbitmq: rabbitmq-server /usr/local/etc/redis.conf
启动django的服务:python manger.py runserver
启动celery客户端;celery -A myapp worker -l info

参考文档

  参考文档:经典案例

django+celery+ RabbitMQ实现异步任务实例的更多相关文章

  1. 如何使用django+celery+RabbitMQ实现异步执行

    1)安装需要安装RabbitMQ.Celery和Django-celeryCelery和Django-celery的安装直接pip就好 2)修改settings.py在INSTALLED_APPS中加 ...

  2. 使用django+celery+RabbitMQ实现异步执行

    http://www.yu180.com/group/view/259 推荐一个解决框架 https://github.com/maccman/juggernaut Realtime server p ...

  3. Django+Celery+xadmin实现异步任务和定时任务

    Django+Celery+xadmin实现异步任务和定时任务 关注公众号"轻松学编程"了解更多. 一.celery介绍 1.简介 [官网]http://www.celerypro ...

  4. django+celery +rabbitmq

    celery是一个python的分布式任务队列框架,支持 分布的 机器/进程/线程的任务调度.采用典型的生产者-消费者模型 包含三部分:1. 队列 broker :可使用redis ,rabbitmq ...

  5. django celery的分布式异步之路(一) 起步

    如果你看完本文还有兴趣的话,可以看看进阶篇:http://www.cnblogs.com/kangoroo/p/7300433.html 设想你遇到如下场景: 1)高并发 2)请求的执行相当消耗机器资 ...

  6. Django+celery+rabbitmq实现邮件发送

    一.环境 1.pip包 amqp==2.4.2 anyjson==0.3.3 billiard==3.6.0.0 celery==4.3.0 Django==2.2 dnspython==1.16.0 ...

  7. django celery的分布式异步之路(二) 高并发

    当你跑通了前面一个demo,博客地址:http://www.cnblogs.com/kangoroo/p/7299920.html,那么你的分布式异步之旅已经起步了. 性能和稳定性是web服务的核心评 ...

  8. Django+Celery+Redis实现异步任务(发送邮件)

    安装如下依赖库 pip install Celery pip install django-celery pip install django-redis 还要安装本地的Redis服务 setting ...

  9. django celery异步框架

    描述:实现运维平台的异步执行与定时任务,以下简单描述了安装过程及使用.   安装django和celery pip install django pip install celery pip inst ...

随机推荐

  1. python opencv:使用滑动条做调色板

    cv2.getTrackbarPos() 函数的 一个参数是滑动条的名字, 第二个参数是滑动条被放置窗口的名字, 第三个参数是滑动条的默认位置. 第四个参数是滑动条的最大值, 第五个函数是回调函数,每 ...

  2. 多进程 多进程queue

    多进程 import multiprocessing import threading import time def thread_run(): print(threading.get_ident( ...

  3. Go语言经典库使用分析——高性能可扩展 HTTP 路由 httprouter(转载)

    转载自 飞雪无情的博客 Go语言(golang)的一个很大的优势,就是很容易的开发出网络后台服务,而且性能快,效率高.在开发后端HTTP网络应用服务的时候,我们需要处理很多HTTP的请求访问,比如常见 ...

  4. MQTT Web Toolkit - MQTT 在线客户端及服务器测试

    MQTT Web Toolkit 是 EMQ 最近开源的一款 MQTT (WebSocket) 测试工具,支持线上 (tools.emqx.io) 访问使用.该工具采用了聊天界面形式,简化了页面操作逻 ...

  5. Keras入门——(7)长短期记忆网络LSTM(四)

    数据准备:http://www.manythings.org/anki/cmn-eng.zip 源代码:https://github.com/pjgao/seq2seq_keras 参考:https: ...

  6. Android Studio 配置Gradle

    一, 问题:①换个新电脑安装完Android Sutdio第一次打开一个工程巨慢怎么办?② 手动配置Gradle Home为什么总是无效?③ 明明已经下载了Gradle,配置了gradle home, ...

  7. Dart语言学习(十三) Dart Mixins 实现多继承

    Mixins Mixins(混入功能)相当于多继承,也就是说可以继承多个类,使用with关键字来实现Mixins的功能. 那么多个类中有相同的方法时候,会被覆盖吗?覆盖的先后是什么? class A{ ...

  8. Dire Wolf HDU - 5115

    题目链接 一开始很自然的想到了贪心,跑了一下贪心,发现无法处理某一段已经被选走的情况,根据数据范围,区间dp比较适合,能储存区间取样信息 设dp[i][j]为已经杀死区间[i,j]的最小值,可以得到转 ...

  9. Android获取当前时间的3中方法总结

    今天听了一在线公开课,任务是做一个数字时钟,其中最关键的自然是获取当前的系统时间.做个简单的记录,如下: 1. Time time = new Time("GMT+8"); tim ...

  10. New Airless Pump Bottle Technical Features

    Airless Pump Bottle    protect sensitive products such as natural skin creams, serums, foundations a ...