How APScheduler works - part 1 (scheduler)

Basic Concepts APScheduler 是一个任务调度框架。它由以下的组件所组成: executor: 任务执行组件,提供不同的运行方式(线程、进程) jobstore: 任务持久化组件,提供不同的持久化后端 scheduler: 任务调度组件,提供不同的调度器(tornado/background) trigger: 任务触发器组件,可以使用 cronjob 也可以直接指定 interval 一个简单的使用示例: import »

urllib3 源码分析 II -ConnectionPool

本文分析 urllib3 的连接池设计。所使用代码版本为 1.23,commit sha 7c216f433e39e184b84cbfa49e41135a89e4baa0 续上文 urllib3 源码分析 I - PoolManager 这里以 HTTP 协议为例,其创建的是 HTTPConnection 实例 # urllib3/connectionpool.py class HTTPConnectionPool( »

urllib3 源码分析 I - PoolManager

本文通过 urllib3 来分析 PoolManager 的设计。所使用代码版本为 1.23,commit sha 7c216f433e39e184b84cbfa49e41135a89e4baa0 urllib3 自带连接池,通过 PoolManager 进行管理。默认创建 10 个连接池 # urllib3/poolmanager.py class PoolManager(RequestMethods): proxy »

切换的魔法 - greenlet

本文所使用的 greenlet 为 0.4.14, commit sha f946722143a9bd65764204202fe0c39fbb526d15 Introduction of greenlet 首先来体验一下 greenlet 的执行流程 from greenlet import greenlet def test1(): print(12) gr2.switch() print( »

PEP 567 Context Variables

contextvars 于 Python 3.7 纳入标准库,之前的版本可以使用 backport,但是不支持 asyncio。为什么这么说呢,看下文你就明白了 应用场景如下 Context managers like decimal contexts and numpy.errstate. Request-related data, such as security »

Quart/peewee async 踩坑记录

这破博客已经一个月没有更新,感觉快要凉了。然而本次更的也并不是技术性文章,仅是前几天 HackDay(24H猝死日)上踩的一些坑。事实上也不算什么坑,毕竟我才只写了 700 来行代码 技术栈为 Quart 0.5.0 peewee-async 0.5.12 首先说一下为什么使用这两个的组合 Quart 是一个拥有和 Flask 一样 API »

Enum 学习笔记

阅读文档时的笔记 enum在 Python 3.4 引入,用于表示一组绑定到唯一常量值的符号名称(成员) Create In [1]: import enum In [2]: class Status(enum.Enum): ...: FINISHED = 0 ...: PENDING = 1 ...: RUNNING = 2 ...: CANCELED »