celery 组件在django环境应用
第一步安装
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环境应用的更多相关文章
- celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)
一.celery简介: Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async tas ...
- python-搭建django环境
python-搭建django环境 标签(空格分隔): python Django简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计.劳伦斯出 ...
- Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法
Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入 ...
- Python Virtualenv运行Django环境配置
系统: RHEL6.5 版本说明: Python-3.5.0 Django-1.10.4 virtualenv:为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各 ...
- python web框架之django环境搭建
一.django环境搭建 https://www.djangoproject.com/download/ 下载适合自己的版本,在右边有压缩包版本的,也可以到git上去拽.我用的python27,下载的 ...
- Centos 如何安装Django环境
Centos 如何安装Django环境 | 浏览:954 | 更新:2014-10-31 20:34 针对Centos这一Linux发行版,进行django环境的搭建过程介绍. 工具/原料 Cen ...
- 安装Nginx+uWSGI+Django环境
Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和 ...
- 腾讯云centos6.5下部署django环境
基于腾讯云CentOS6.5的环境 首先说下需要用到的软件 1.gcc环境 腾讯云默认是没有gcc编译器的,需要手动安装一下:yum install gcc 2.python环境 因为我用的cento ...
- Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)
Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...
- 最优Django环境配置
2 最优Django环境配置 本章描述了我们认为对于中等和高级Django使用者来说最优的本地环境配置 2.1 统一使用相同的数据库引擎 一个常见的开发者错误是在本地开发环境中使用SQLite3,而在 ...
随机推荐
- 如何基于Security框架兼容多套用户密码加密方式
一.说明 当已上线的系统存在使用其他的加密方式加密的密码数据,并且密码 不可逆 时,而新的数据采用了其他的加密方式,则需要同时兼容多种加密方式的密码校验. 例如下列几种情况: 旧系统用户的密码采用了 ...
- ChatGPT 何许人也
有时候会想,如果chatGPT是人,它会是一个怎样的人呢?下面是我的推测过程. 首先,她应该是女人 会推测而不会计算 你问它: 3457 * 43216 = ,它回答 149261912 (这是错的. ...
- 怎么在php7项目中安装event扩展
今天就跟大家聊聊有关怎么在php7项目中安装event扩展,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获. 安装支持库libevent wget ...
- Rancher(V2.6.3)安装K8s教程
Rancher(V2.6.3)安装K8s教程 一,安装前环境准备: 1,升级Linux服务器内核 Ubuntu20.04: #查看当前内核版本 uname -rs #查看软件库中可下载的内核 sudo ...
- 每日复习关于static 饿汉式 懒汉式,单例设计模式
1.1.static 的使用 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过 new 关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部 ...
- 有关使用druid配置多数据源多个实例数据源和配置一个实例多个库
配置多数据源有以下几个说法. 1.多数据库类同时链接mysql,oracle,mongo等等 一般这样的配置这几个数据源不会存在一个实例(机器等)上.也属于多实例数据源. 类似如下图 有的是aliyu ...
- 基于SpringBoot实现单元测试的多种情境/方法(二)
本文分享自天翼云开发者社区@<基于SpringBoot实现单元测试的多种情境/方法(二)>, 作者:才开始学技术的小白 1 Mock基础回顾 在上一篇分享中我们详细介绍了简单的.用moc ...
- 文盘Rust -- 用Tokio实现简易任务池
作者:京东科技 贾世闻 Tokio 无疑是 Rust 世界中最优秀的异步Runtime实现.非阻塞的特性带来了优异的性能,但是在实际的开发中我们往往需要在某些情况下阻塞任务来实现某些功能. 我们看看下 ...
- 循序渐进的掌握uni-app,两个小时完成一个简单项目——新闻App、新闻小程序
效果图 一.创建项目 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/ ...
- 最新版本 Stable Diffusion 开源 AI 绘画工具之中文自动提词篇
目录 标签生成器 提示词自动补全 标签生成器 由于输入正向提示词 prompt 和反向提示词 negative prompt 都是使用英文,所以对学习母语的我们非常不友好 使用网址:https://t ...