django celery使用

celery的简单介绍

Celery的主要用处是执行异步任务, 可以选择延期或定时执行功能.

  1. 第一, 假设用户正发起一个request, 并等待request完成后返回. 在这一request后面的view功能中, 我们可能需要执行一段花费很长时间的程序任务, 这一时间可能远远大于 用户能忍受的范围. 当这一任务并不需要立刻执行时,我们便可以使用Celery在后台执 行, 而不影响用户浏览网页. 当有任务需要访问远程服务器完成时, 我们往往都无法确 定需要花费的时间.
  2. 第二则是定期执行某些任务. 比如每小时需要检查一下天气预报, 然后将数据储存到数据库中. 我们可以编写这一任务, 然后让Celery每天执行一次,统计前一天的数据


安装Celery

我是vietualenv用pip安装的

pip install django-celery



Django设置

如何使用django-celery完成异步任务



如何使用

  1. 创建一个task

    在django的app中新建一个tasks.py 这个名字你自己可以更改

    正如前面所说的, 一个task就是一个Pyhton function. 但Celery需要知道这一function是task, 因此我们可以使用celery自带的装饰器decorator: @task.

    tasks.py:

    from celery.task import task
    @task(max_retry=3, default_retry_delay=5)
    def task_Tongji_All_Order():
    try:
        #do everything you like
        except Exception, exc:
            raise task_Tongji_All_Order.retry(exc=exc)
  2. 执行task

    这时候我们希望用户在发出request之后,异步执行我们的function

时间: 2024-12-24 04:27:36

django celery使用的相关文章

结合Django+celery二次开发定时周期任务

需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还能满足他们,优化脚本之后只要开发提供查询数据的SQL.收件人.执行时间等等参数就可以几分钟写完一个定时任务脚本 ,到后面不知道是不是吃药了一天三四个定时任务,不到半个月手里一下就20多个定时任务了,渐渐感到力不从心了,而且天天还要给他们修改定时任务的SQL.收件人.执 行时间等等,天天写定时任务脚本

django+celery配置(定时任务)

下面介绍一下django+celery的配置做定时任务 1.首先介绍一下环境和版本 python==2.7 django == 1.8.1 celery == 3.1.23 django-celery == 3.1.17 2.celery的安装   sudo pip install celery==3.1.23 sudo pip install django-celery==3.1.17 3.新建一个项目 (1)django-admin startproject django_celery_de

Django & Celery – Easy async task processing 翻译

So, while developing a web application, there comes a time when we need to process some of the tasks in the background, perhaps asynchronously. For example, your user would upload photos and the app would post them to multiple social networks. We wou

django+celery+redis环境搭建

初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar.gz,cd httpd-2.0.63, ./configure --prefix=/usr/local/apache --enable-mods=all --enable-cache --enable-mem-cache --enable-file-cache --enable-rewrite(这一

django+celery 实现分布式任务

想用django做一个自动运维平台,利用netsnmp来获取交换机及服务器信息,但是snmpget任务需要在后台实时运行,为了不影响html响应,利用celery来结合django做异步任务队列. 一.环境准备1.首先安装celerypip3 install celery2.安装djcelerypip3 install django-celery3.安装一个broker我们必须拥有一个broker消息队列用于发送和接收消息.Celery官网给出了多个broker的备选方案:RabbitMQ.Re

django celery的分布式异步之路(一) hello world

设想你遇到如下场景: 1)高并发 2)请求的执行相当消耗机器资源,流量峰值的时候可能超出单机界限 3)请求返回慢,客户长时间等在页面等待任务返回 4)存在耗时的定时任务 这时你就需要一个分布式异步的框架了. celery会是一个不错的选择.本文将一步一步的介绍如何使用celery和django进行集成,并进行分布式异步编程. 1.安装依赖 默认你已经有了python和pip.我使用的版本是: python 2.7.10 pip 9.0.1virtualenv 15.1.0 创建沙盒环境,我们生产

django+celery实现异步任务

在django项目中常常需要有些耗时的任务,比如发送邮件.短信啥的,这种情况使用celery就非常有用了.celery有原生的也有第三方封装的django-celery,但是django-celery更新不及时,而且不支持celery4,这都出来两年了(看下commit 这两年半django-celery也没怎么提交新的代码),但是毕竟方便,就先安装这个出了问题再更换吧 安装 pip install django-celery 原文地址:https://www.cnblogs.com/wsqy/

【解决】Django + Celery 长链接问题(一段时间后就断开) #原理待查

技术背景: python(3.7) + Django(2.1) + Celery(4.2) + RabbitMQ(3.7.8) 启动环境: django runserver 启动在本地 celery 也是在本地系统:$ celery worker -A <project> -c 2 --loglevel=info -n 'celery_worker_name' -Q <queue> -b amqp://****:****@localhost:*56**/vhost   //创建了一

django+celery+redis环境配置

celery是python开发的分布式任务调度模块 Celery本身不含消息服务,它使用第三方消息服务来传递任务,目前,celery支持的消息服务有RabbitMQ,redis甚至是数据库,redis是最佳选择 已安装配置好环境python3.x 已成功安装django 1.安装依赖包: cmd下执行命令: ...>pip3 install celery ...>pip3 install redis ...>pip3 install django-celery ...>pip3 i