1. #celery_app.py
  2.  
  3. #!/usr/bin/env python
  4. # -*- coding: utf-8 -*-
  5. from __future__ import absolute_import
  6. import os
  7. from celery import Celery, platforms
  8. from django.conf import settings
  9.  
  10. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
  11. app = Celery('task')
  12.  
  13. app.config_from_object('config')
  14. app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
  15.  
  16. platforms.C_FORCE_ROOT = True
  1. # config.py
  2.  
  3. #!/usr/bin/env python
  4. # -*- coding: utf-8 -*-
  5.  
  6. BROKER_URL = 'redis://***@127.0.0.1:6379/0'
  7. BROKER_TRANSPORT = "redis"
  8. CELERY_RESULT_BACKEND = BROKER_URL
  9.  
  10. CELERY_QUEUES = {
  11. "task_1": {
  12. "exchange": "task_1",
  13. "exchange_type": "direct",
  14. "routing_key": "task_1"
  15. },
  16. "task_2": {
  17. "routing_key": "task_2",
  18. "exchange_type": "direct",
  19. "exchange": "task_2",
  20. }
  21. }
  22.  
  23. CELERY_ROUTES = {
  24. 'tasks.task_1': {'queue': 'task_1', 'routing_key': 'task_1'},
  25. 'tasks.task_2': {'queue': 'task_2', 'routing_key': 'task_2'}
  26. }
  1. # run_celery.sh
  2. python manage.py celery worker -A celery_app -P gevent -c -n task_1_worker -Ofair -l error -Q task_1 -f /home/test/logs/celery.log
  3.  
  4. # 同一个manager.py不能同时起gevent和prefork模式,因为monkey_patch,需要根据入参动态适配
  5. python manage.py celery worker -A celery_app -c --autoscale=, -n task_2_worker -Ofair -l error -Q task_2 -f /home/test/logs/celery.log

django + celery的队列,路由与弹性的更多相关文章

  1. django celery redis 定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  2. django celery异步框架

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

  3. django+celery+redis实现运行定时任务

    0.目的 在开发项目中,经常有一些操作时间比较长(生产环境中超过了nginx的timeout时间),或者是间隔一段时间就要执行的任务. 在这种情况下,使用celery就是一个很好的选择.   cele ...

  4. Celery多队列配置

    Celery多队列配置 Celery官方文档 项目结构 /proj -__init__ -app.py #实例化celery对象 -celeryconfig.py #celery的配置文件 -task ...

  5. Django + Celery 实现动态配置定时任务

    哈喽,今天给大家分享一篇Django+Celery实现动态配置定时任务,因为最近也是无意间看到一位大佬关于这块的文章,然后自己觉得不错,也想学习写一下,然后最终实现功能是在前端页面统一管理计划任务,大 ...

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

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

  7. django+celery+redis环境搭建

    初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...

  8. 基于Django+celery二次开发动态配置定时任务 ( 一 )

    需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还 ...

  9. 基于Django+celery二次开发动态配置定时任务 ( 二)

    一.需求 结合上一篇,使用djcelery模块开发定时任务时,定时任务的参数都保存在djcelery_periodictask表的args.kwargs字段里,并且是json格式.那么,当定时任务多了 ...

随机推荐

  1. java Map类

    实现类 类型区别 HashMap 最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度.HashMap最多只允许一条记录的键为Null(多条会覆盖);允 ...

  2. 六、IDEA-SpringBoot项目设置热部署

    啥是热部署!???(不要去查了,,同学) 根据上面的提示,我们已经完成了Spring Boot项目的创建和运行,但是有一个问题就是,每次修改代码之后都需要重新启动调试,代码才能生效,比较麻烦,那有没有 ...

  3. EDM邮件营销的七个重要参考指标

    如何做好EDM邮件营销,已经成为EDM工作人员面临的实际问题.当你发送邮件之前, 你可以先想想:我自己的电子邮件的目标是什么?邮件能否吸引收件人?能带来更多客户吗?无论你的目标是什么,以下的这些指标是 ...

  4. idea中@data不生效

    idea中@data不生效,原因是idea中没有安装插件,记得重启

  5. linux 进程间共享内存示例

    写入端: #include <iostream> #include <unistd.h> #include <stdlib.h> #include <stdi ...

  6. Java的in.nextInt()和in.nextLine()方法的具体内涵

    本人也是刚开始学习java语言,在学习的过程中,老师让我们做一个模拟学生学籍管理系统的小程序.因为刚开始,做的是比较简单的,用switch语句做界面,然后配合Scanner 接收输入的数字进行跳转,完 ...

  7. 安装iamp模块,编译报错configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.

    yum install libc-client-devel cd /root/lnmp1.0-full/php-5.3.17/ext/imap /usr/local/php/bin/phpize ./ ...

  8. wiki团队协作软件Confluence

    一.准备环境 准备环境 lamp(Linux.apache.mysql.php)框架 centos7 java jdk1.8.0_111 Distrib 5.5.52-MariaDB confluen ...

  9. Fabric CA/数字证书管理

    MSP(Membership Service Provider)成员管理服务提供商 名词: 1.CSR(Cerificate Signing Request):证书签署请求文件 CSR里包含申请者的 ...

  10. ubuntu server安装的一些坑

    [没有root用户] ubuntu server安装的时候要你新建一个用户,安装完成后,你需要手动开启root. $ sudo passwd root 输入你当前用户的密码 输入你希望的root用户的 ...