celery 4.2

-Ofair现在是默认的调度策略

关于-Ofair命令行选项的作用存在很多混淆,并且在解释中使用术语“预取”可能没有帮助,因为这个术语在AMQP中有多么混乱。

当使用prefork池的Celery worker接收任务时,它需要将该任务委托给子进程执行。

prefork池具有可配置数量的子进程(--concurrency),可用于执行任务,

每个子进程使用管道/套接字与父进程通信:inqueue(管道/套接字):父发送任务到子进程outqueue(管道/套接字):child将结果/返回值发送给父级。

在Celery 3.1中,默认的调度机制只是将任务发送到可写的第一个队列,并使用一些启发式方法确保我们在它们之间进行循环,以确保每个子进程都能接收相同数量的任务。这意味着在默认调度策略中,工作人员可以将任务发送到已经执行任务的同一子进程。如果该任务长时间运行,则可能会长时间阻止等待任务。更糟糕的是,即使有子进程可以自由地工作,数百个短期运行的任务也可能被困在长期运行的任务之后。添加了-Ofair调度策略以避免这种情况,并且在启用时添加了规则,即不应将任务发送到已执行任务的子进程。如果您只有短期运行任务,那么公平调度策略可能会稍微差一些。

celery -A tasks worker -l info -P eventlet

这个命令是开启了一个worker,但是它可以同时执行四个任务,这是因为它的子进程,prefork(这个是会根据你的电脑自动设置),我们自己也可以自定义

另外他虽然执行四个,另外每一个worker还会预存一个,也就是说他会同时recevie5个,但是有一个不执行

Django--队列2的更多相关文章

  1. Django项目--web聊天室

    需求 做一个web聊天室,主要练习前端ajax与后台的交互: 一对一聊天和群组聊天 添加用户为好友 搜索并添加群组 管理员可以审批用户加群请求,群管理员可以有多个,群管理员可以删除,添加禁言群友 与聊 ...

  2. Django自定义指令+mq消息队列的使用

    import pika import json import logging import base64 from rest_framework.exceptions import ParseErro ...

  3. 分布式队列celery 异步----Django框架中的使用

    仅仅是个人学习的过程,发现有问题欢迎留言 一.celery 介绍 celery是一种功能完备的即插即用的任务对列 celery适用异步处理问题,比如上传邮件.上传文件.图像处理等比较耗时的事情 异步执 ...

  4. django + celery的队列,路由与弹性

    #celery_app.py #!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import ...

  5. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  6. Python之路【第十八篇】Django小项目webQQ实现

    WEBQQ的实现的几种方式 1.HTTP协议特点 首先这里要知道HTTP协议的特点:短链接.无状态! 在不考虑本地缓存的情况举例来说:咱们在连接博客园的时候,当tcp连接后,我会把我自己的http头发 ...

  7. Django中Celery的实现介绍(一)

    Django中Celery的实现 Celery官网http://www.celeryproject.org/ 学习资料:http://docs.jinkan.org/docs/celery/ Cele ...

  8. Django 中的用户认证

    Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...

  9. Django缓存优化之redis

    Redis 概述 Redis 是一个开源的Inmemory key-value 存储系统,性能高,很大程度上补偿了 memcached 的不足.支持多种存储类型,包括 string, list, se ...

  10. High Performance Django

    构建高性能Django站点   性能 可用 伸缩 扩展 安全 build 1.审慎引入第三方库(是否活跃.是否带入query.是否容易缓存) 2.db:减少query次数 减少耗时query 减小返回 ...

随机推荐

  1. 安装sshpass:No package sshpass available

    安装sshpass的时候,报了如下错误: No Package sshpass available 更改软件源之后也无效.直到看到StackOverFlow上的一个问题:https://stackov ...

  2. Java虚拟机(一):JVM的运行机制

    一.JVM启动流程 通过java +xxx(或javaw)启动java虚拟机 装载配置,会在当前路径中寻找jvm的config配置文件. 根据查找jvm.dll文件.这个文件就是java虚拟机的主要实 ...

  3. Theos初步

    [Theos初步] 1.安装Theos.Theos需要在mac和ios上均安装,ios上安装的是Theos服务器,以使得mac的thoes可以直接安装app到ios设备上.如果不需要使用此功能,则仅安 ...

  4. solr4.3+tomcat入门部署

    solr4.3的入门配置   目前阿帕奇官方仅推荐2个比较稳定的版本一个是4.3的版本,一个3.6的版本     3.6的版本没有用过,所以在此无涉及,下面就来说说solr4.3的入门配置     s ...

  5. nohup 无发后台运行

      用nohup命令让Linux下程序永远在后台执行 [ 2006-5-13 22:31:54 | By: 牧云 ]   Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在 ...

  6. 关于使用sessionStorage报SecurityError错误的问题

    localStorage 永久保存 不同页面和标签页可以共享 关闭浏览器不会清除 sessionStorage 会话保存 不同页面和标签页不能共享 关闭浏览器会清除 遇到的问题:在firefox中报S ...

  7. Linux 各文件系统配置

    区分目录跟文件 可执行文件:可以拿出来直接运行的命令. 符号链接 重要的目录 bin 里面是命令. etc 重要的配置文件.各种软件的配置文件.以后要配置网络环境,linux运行环境都是在这里进行配置 ...

  8. 9. Palindrome Number 回文数的判断

    [抄题]: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the sam ...

  9. solr开发 小案例

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...

  10. 面试题:基础数据类型 包装类 int Integer

    因为在学习集合时知道集合里存放的对象都是Object类型,取出的时候需要强制类型转换为目标类型(使用泛型集合不需要),如int a = (Integer)arrayList.get(0):然后我们就会 ...