摘要:
一、什么是Celery 1.1、celery是什么 Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度。 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task 阅读全文
摘要:
在顶层抽象上,python对象是属性、方法、作用域的集合。 在底层实现上,python对象不过就是对c语言struct结构的封装。 一个python的int类型可以写成这样: class python_int(object): def __init__ (self, value): self.val 阅读全文
摘要:
aiohttp分为服务器端和客户端,本文只介绍客户端。由于上下文的缘故,请求代码必须在一个异步的函数中进行: async def fn(): pass 安装 pip install aiohttp 基本语法 async with aiohttp.request('GET','https://gith 阅读全文
摘要:
背景 aredis 是一款由同步的 redis 客户端 redis-py 改写而成的高效的异步 redis 客户端,在最新的 1.0.7 版本中完成了对于 redis 集群的支持。 改动 主要重写了底部建立连接和读取数据部分的代码,接口部分都向下兼容,便于使用者从 redis-py 的同步代码迁移到 阅读全文
摘要:
协程语法 在Python 3.5+发布之前,asyncio模块使用生成器模拟异步调用,因此具有与当前Python 3.5版本不同的语法 ;以下代码均基于python3.7 从Python 3.5开始引入了异步async及await关键字。注意,在await func()调用时无需带上括号,先感受一下 阅读全文
摘要:
协程 (coroutine) 几乎是 Python 里最为复杂的特性之一了,这篇文章我们来说一说 asyncio 的内部实现机制,借此来理解一门语言要支持协程需要做的工作。 本文需要提前了解 Python 的 yield from 语法,不了解的话,可以看看之前关于 Generator 的文章 ;另 阅读全文
摘要:
一 引子 二 协程介绍 三 Greenlet 四 Gevent模块 五 Gevent之同步与异步 六 Gevent之应用-爬虫 七 Gevent之应用-socket并发 一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾 阅读全文
摘要:
Python采用的是引用计数机制为主,标记-清理和分代收集两种机制为辅的策略。 1、引用计数 python中一切皆对象,所以python底层计数结构地就可以抽象为: 引用计数结构体{ 引用计数; 引用的对象 } 是不是简单明了。现在我们先去考虑一下,什么情况下引用计数+1,什么情况下-1,当引用次数 阅读全文
摘要:
Python timeit模块的使用 Python 中的 timeit 模块可以用来测试一段代码的执行耗时,如一个变量赋值语句的执行时间,一个函数的运行时间等。 timeit 模块是 Python 标准库中的模块,无需安装,直接导入就可以使用。导入时直接 import timeit ,可以使用 ti 阅读全文
摘要:
1.嵌套列表 Python中有一种内置的数据类型叫列表(list),它是一种容器,可以用来承载其他的对象(准确的说是其他对象的引用),列表中的对象可以称为列表的元素,很明显我们可以把列表作为列表中的元素,这就是所谓的嵌套列表。 嵌套列表可以模拟出现实中的表格、矩阵、2D游戏的地图(如植物大战僵尸的花 阅读全文