celery 可视化_3-django进阶之celery

Django集成Celery到项目

​ 本节将celery集成到Django项目中,实现异步任务处理和定时任务处理

Celery工作流程

Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

消息中间件

Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis, MongoDB (experimental), Amazon SQS (experimental),CouchDB (experimental), SQLAlchemy (experimental),Django ORM (experimental), IronMQ

任务执行单元

Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。

任务结果存储

Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, Redis,memcached, MongoDB,SQLAlchemy, Django ORM,Apache Cassandra, IronCache

1 Celery安装与配置

在虚拟环境中安装:

pip install django-celery==3.2.2

pip install django-redis

pip install flower # celery 的web管理平台(异步任务可视化)

查看集成到Django中的celery版本, pip freeze

celery==3.1.26.post2 django-celery==3.2.2 flower==0.9.2

启动redis服务, 端口假设为6379

发现pip安装比较慢的情况

2 Django中配置

(1)在主工程的配置文件settings.py 中应用注册表INSTALLED_APPS中加入 djcelery

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'art',

'xadmin',

'crispy_forms',

'DjangoUeditor',

'djcelery', #加入djcelery

]

(2) 在settings.py 中加入celery配置信息

#############################

# celery 配置信息 start

#############################

import djcelery

djcelery.setup_loader()

BROKER_URL = 'redis://127.0.0.1:6379/1'

CELERY_IMPORTS = ('art.tasks')

CELERY_TIMEZONE = 'Asia/Shanghai'

CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

from celery.schedules import crontab

from celery.schedules import timedelta

CELERYBEAT_SCHEDULE = { #定时器策略

#定时任务一: 每隔30s运行一次

u'测试定时器1': {

"task": "art.tasks.tsend_email",

#"schedule": crontab(minute='*/2'), # or 'schedule': timedelta(seconds=3),

"schedule":timedelta(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值