第一步安装

pip install celery==4.4

第二步 配置环境

# ############################# celery 配置连接redis #############################
#添加密码的
CELERY_BROKER_URL = 'redis://:foobared@127.0.0.1:6379/0'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_RESULT_BACKEND = 'redis://:foobared@127.0.0.1:6379/0'
CELERY_TASK_SERIALIZER = 'json'

第三步   【项目/项目/celery.py】在项目同名目录创建 celery.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 拒绝隐式引入,因为celery.py的名字和celery的包名冲突,需要使用这条语句让程序正确运行
from __future__ import absolute_import
import os
from celery import Celery # set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'auction.settings') app =Celery('auction') # Using a string here means the worker doesn't have to serialize
# the configuration object to child processes.
# - namespace='CELERY' means all celery-related configuration keys
# should have a `CELERY_` prefix.
app.config_from_object('django.conf:settings',namespace='CELERY') # Load task modules from all registered Django app configs.
# 去每个已注册app中读取 tasks.py 文件
app.autodiscover_tasks()

 第四步【项目/app名称/tasks.py】 

from celery import shared_task

@shared_task
def add(x, y):
return x + y @shared_task
def mul(x, y):
return x * y

第五步 【项目/项目/__init__.py】 

from .celery import app as celery_app

__all__ = ('celery_app',)

第六步 启动worker

进入项目目录

celery worker -A s -l info -P eventle

 第七步 编写视图函数,调用celery去创建任务

from django.shortcuts import HttpResponse
from api.tasks import x1 def create_task(request):
print('请求来了')
result = x1.delay(2,2)
print('执行完毕')
return HttpResponse(result.id) def get_result(request):
nid = request.GET.get('nid')
from celery.result import AsyncResult
# from demos.celery import app
from demos import celery_app
result_object = AsyncResult(id=nid, app=celery_app)
# print(result_object.status)
data = result_object.get()
return HttpResponse(data)

  第八步 启动django程序

http://127.0.0.1:8000/api/get/task/?nid=68d4c97e-92e5-42e4-a04d-c1a8f35fb4a
http://127.0.0.1:8000/api/create/task/

  注意事项:

本地时间和URF实际转换:

Python3 :
# 本地时间转换成utc时间
utc_ctime = datetime.datetime.utcfromtimestamp(ctime.timestamp())
target_time = utc_ctime + datetime.timedelta(seconds=10)
result = x1.apply_async(args=[11, 3], eta=target_time) python2 : # “”“本地时间转UTC时间(-8:00)”“”
time_struct = time.mktime(ctime.timetuple())
utc_st = datetime.datetime.utcfromtimestamp(time_struct) # utc_ctime = datetime.datetime.utcfromtimestamp(ctime.timestamp())
target_time = utc_st + datetime.timedelta(seconds=30)

  

 

  

celery 组件在django环境应用的更多相关文章

  1. celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)

    一.celery简介: Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async tas ...

  2. python-搭建django环境

    python-搭建django环境 标签(空格分隔): python Django简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计.劳伦斯出 ...

  3. Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法

    Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入 ...

  4. Python Virtualenv运行Django环境配置

    系统: RHEL6.5 版本说明: Python-3.5.0 Django-1.10.4 virtualenv:为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各 ...

  5. python web框架之django环境搭建

    一.django环境搭建 https://www.djangoproject.com/download/ 下载适合自己的版本,在右边有压缩包版本的,也可以到git上去拽.我用的python27,下载的 ...

  6. Centos 如何安装Django环境

    Centos 如何安装Django环境 | 浏览:954 | 更新:2014-10-31 20:34 针对Centos这一Linux发行版,进行django环境的搭建过程介绍.   工具/原料 Cen ...

  7. 安装Nginx+uWSGI+Django环境

    Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和 ...

  8. 腾讯云centos6.5下部署django环境

    基于腾讯云CentOS6.5的环境 首先说下需要用到的软件 1.gcc环境 腾讯云默认是没有gcc编译器的,需要手动安装一下:yum install gcc 2.python环境 因为我用的cento ...

  9. Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)

    Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...

  10. 最优Django环境配置

    2 最优Django环境配置 本章描述了我们认为对于中等和高级Django使用者来说最优的本地环境配置 2.1 统一使用相同的数据库引擎 一个常见的开发者错误是在本地开发环境中使用SQLite3,而在 ...

随机推荐

  1. 基于声网 Flutter SDK 实现多人视频通话

    前言 本文是由声网社区的开发者"小猿"撰写的Flutter基础教程系列中的第一篇.本文除了讲述实现多人视频通话的过程,还有一些 Flutter 开发方面的知识点.该系列将基于声网 ...

  2. Python Web开发初试,基于Flask

    目录 关于web框架 Python flask使用 关于web框架 仅仅对于应用层的coder而言,web框架的使用其实就是写路由,分发路由,写输出.当然如果要安全,要测试,要写优秀的接口,那需要继续 ...

  3. Python——基础知识(一)

    1. 那么多编程语言,为什么学python 易于学习,是所有编程语言当中最容易学习的 没有最好的语言,只有最合适的语言 2. 反复执行的用例如何提升效率 测试流程回归(回顾) 很多测试用例在不同的测试 ...

  4. CosineWarmup理论与代码实战

    摘要:CosineWarmup是一种非常实用的训练策略,本次教程将带领大家实现该训练策略.教程将从理论和代码实战两个方面进行. 本文分享自华为云社区<CosineWarmup理论介绍与代码实战& ...

  5. 教你如何用纯css代码实现太极阴阳鱼动画效果

    今天看到一个有意思的效果,闲来无事做一个: 把2d静态的太极图改成了3d,阴极和阳极分到了两个平面里实现旋转效果,这个好实现,重点是实现它的透明效果,平面太极图显示出两极是用另加的块元素挡住底面的颜色 ...

  6. Activiti 7 启动流程实例

    首先,考虑下面这样一个流程图 主要的流程定义如下: <process id="demo" name="demo" isExecutable="t ...

  7. Prometheus服务发现之kubernetes_sd_config

    一.为什么要使用Prometheus服务发现 之前我们讲过通过配置prometheus-operator的CRD ServiceMonitor来达到K8S集群相关组件和微服务的监控的目的,可以在Ser ...

  8. freeswitch媒体协商的优先级方案

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 不同的媒体格式各有优缺点,实际环境中的应用要根据线路和客户的实际需求确定. 本文中介绍一种较为通用的媒体配置方案,可以适配大部分场景 ...

  9. 服务器实现端口转发的N种方式

    简介 在一些实际的场景里,我们需要通过利用一些端口转发工具,比如系统自带的命令行工具或第三方小软件,来绕过网络访问限制触及目标系统.下文为大家总结了linux系统和windows系统端口转发常用的一些 ...

  10. 【Spring注解驱动】(三)servlet3.0

    前言 今天是7.21日,终于是看完了..暑假在家学习是真的差点意思 1 Servlet 3.0简介 Servlet 2.0是在web.xml中配置servlet filter.listener.Dis ...