09 2020 档案
摘要:一、什么是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游戏的地图(如植物大战僵尸的花
阅读全文
摘要:一种著名的数据结构是堆(heap),它是一种优先队列。优先队列让你能够以任意顺序添加对象,并随时(可能是在两次添加对象之间)找出(并删除)最小的元素。相比于列表方法min,这样做的效率要高得多。实际上,Python没有独立的堆类型,而只有一个包含一些堆操作函数的模块。这个模块名为heapq(其中的q
阅读全文
摘要:背景: 通常在UNIX下面处理文本文件的方法是sed、awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力。关于sed的说明可以看了解sed的工作原理,本文将介绍通过python的mmap模块来实现对大文件的处理,来对比看他们的差异。 说明: mmap是一种虚拟内存
阅读全文
摘要:这里只分析几个可能会常用到的魔法方法,像__new__这种不常用的,用来做元类初始化的或者是__init__这种初始化使用的 每个人都会用的就不介绍了。 其实每个魔法方法都是在对内建方法的重写,和做像装饰器一样的行为。理解这个道理 再尝试去理解每个细节装饰器会比较方便。 关于__str__和__re
阅读全文
摘要:一·概念理解 首先呢,要了解session和cookie的区别先要了解以下几个概念: 1、无状态的HTTP协议: 协议,是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器 传送到客户端的
阅读全文