概述 首先,我们要了解什么是Celery的Prefetch和Acknowledged。 顾名思义,Prefetch指的是一个Celery Worker节点,能够提前获取一些还还未被其他节点执行的任务,这样可以提高Work…
分类:Python
Celery 与 RabbitMQ:关于Exchange和Queue的那些事
RabbitMQ RabbitMQ的消息流主要由两个部分组成:Exchange和Queue。 Exchange Exchange其实可以类比为一个交换机?其根据Exchange的类型和一些规则,来将消息分发到特定的Que…
Python 内存分析杂记
Tracemalloc Python 3.4里引入的一个专门用来分析内存状态的模块。tracemalloc 这里我们只需要记住几个命令就行: import tracemalloc tracemalloc.start() …
Celery 任务生产者在大规模生产任务时,存在的内存累积问题
简述 在当前的项目中,由于项目需求,需要实现一个将一个大任务拆分成无数个子任务的功能。 而在这个功能实现的时候,由于拆分的子任务数量太大,导致内存占用一直攀升直至Out of Memory。 为了解决这个问题,我曾经怀疑…
uWSGI按时间进行日志分片
0x00 概述 首先,uWSGI没有提供原生的日志分片功能,目前好像只有按大小进行分片的功能log-maxsize。因此我们只能手动来实现按天(或者其他时间段)来进行日志的切割。 0x01 使用工具 logrotate …
PyQt开发(三):Events与Signals
0x00 前述 在写PyQt的时候,会发现由于UI线程是独立的,因此我们不能够在其他逻辑线程中,直接去对UI进行操作。而PyQt给我们提供了一个Signal系统,让我们能够在多线程中,对UI进行安全的交互。 0x01 关…
PyQt开发(二):界面与逻辑分离
0x00 PyQt原生支持界面与逻辑分离,特别是使用QtDesigner设计界面。 0x01 转换UI文件 使用QtDesigner设计并保存界面之后,会产生一个.ui文件,这里我们使用PyUIC去直接将其转换为.py文…
PyQt开发(一):环境配置(PyCharm)
0x00 毕设项目需要用Python实现一个GUI界面,在查询了一番之后我选择了PyQt。 0x01 环境 Python 3.6.1, PyCharm 2018.1 0x02 安装PyQt 在这里,推荐为项目单独创建一个…
Python:类内装饰器的使用(pymongo自动重连实现)
0x00 最近要实现一个pymongo库的自动重连功能,但是官方文档只说了: In order to auto-reconnect you must handle this exception, recognizing …
利用Python的crcmod模块快速计算各种crc
0x00 前几天打CTF的时候,发现需要计算CRC(当时还不知道哪种CRC),于是在网上搜了一圈发现Python的crcmod,内置了大多数常用的CRC算法,以及你可以利用这个模块自己编写自己的CRC。 0x01 首先就…