Herry's blog
songcser
  • asyncio之调试

    asyncio构建了一些有用的调试特性。 首先,事件循环在运行时使用logging来发送状态信息。在应用中启用日志就会获取到一些信息。其他的可以打开告诉事件循环来发送更多的调试信息。通过调用set_debug()传递boolean值来表明是否启动调试。 由于构建在asyncio上的应用程序...

    • asyncio
    • 异步
    • 协程
  • asyncio之协程和线程进程组合

    许多已经存在的库还没有使用原生的asyncio。可能造成阻塞或者依赖并发特性的模块不可用。还是有可能在基于asyncio的应用中使用这些库,通过使用concurrent.futures的executor可以在一个分离的线程或者进程中运行代码。 线程 事件循环的run_in_executo...

    • asyncio
    • 异步
    • 协程
  • asyncio之接收Unix信号

    通常Unix系统事件通知需要中断应用来触发执行。当使用asyncio时,信号处理回调会与事件循环管理的其他协程的回调交错进行。这导致中断的功能更少,因此需要提供安全防护来清理不完整的操作。 信号处理必须是常规的函数调用,不是协程。 1 2 3 4 5 6 7 8 ...

    • asyncio
    • 异步
    • 协程
  • asyncio之子进程交互

    经常需要和其他的一些程序和进程一起工作,以便使用已经存在的代码而不用重写,或者访问Python中已经不可用的库或特性。和网络IO一样,asyncio包含两个抽象概念来启动其他程序然后进行交互。 对于Subprocesses使用Protocol Abstraction 这个例子使用协程来启...

    • asyncio
    • 异步
    • 协程
  • asyncio之域名服务交互

    应用程序使用网络与服务器进行通信时可能需要域名服务(DNS),如在主机名和IP地址之间进行转换。asyncio事件循环有方便的方法在后台进行处理,以避免在查询时阻塞。 根据域名查找地址 使用getaddrinfo()协程方法将主机名和端口号转换成IP或IPv6地址。和在socket模块中...

    • asyncio
    • 异步
    • 协程
    • DNS
  • asyncio之使用SSL

    asyncio内置支持在套接字上启用SSL通信。通过将SSLContext实例传递给协程来创建服务器或者客户端连接,可支持并确保在将套接字交给应用程序使用之前启用SSL协议。 比以前章节中以协程为基础的服务端和客户端更新了一些小变化。首先创建证书和key文件。使用下面命令生成自签名证书。 ...

    • asyncio
    • 异步
    • 协程
  • asyncio之协程异步IO流

    这节练习两个例程实现简单的服务端和客户端的替换版本。使用协程和asyncio流API代替protocol和transport抽象类。这节操作较低级别的抽象层而不是以前讨论的Protocol API,但是产生的事件是相似的。 服务端 首先导入需要的模块asyncio和logging,然后创...

    • asyncio
    • 异步
    • 协程
  • asyncio之抽象类Protocol异步IO

    到目前为止,那些例子都避免混合并发和IO操作,以便每次都关注一个概念。当IO阻塞时进行上下文切换是asyncio一个主要的用例。 基于已经介绍的并发概念,这节验证两个例程,一个简单的服务端和客户端,和在socket和socketserver那节中的例子相似。客户端能够连接服务端,发送数据然后接收相...

    • asyncio
    • 异步
    • 协程
  • asyncio之同步原语

    尽管asyncio应用经常是单线程进程运行,但是也同样可以构建同步应用。基于延迟、IO中断和其他事件的每一个coroutine或task可能在不可预测的顺序执行。为了支持安全同步,asyncio提供了和threading和multiprocessing模块相同的低水平原始接口。 锁 锁可...

    • asyncio
    • 异步
    • 协程
  • asyncio之协程控制结构

    使用语言内置的关键字await,一些协程之间的线性控制流是很容易进行管理的。更加复杂的结构使用asyncio的工具也可以做到允许一个协程等待其他协程的并发完成。 等待多个协程运行 经常会分割一个操作为多个部分分离执行。例如,下载多个远程资源或者查询远程API。在这种情况下,执行的顺序是无...

    • asyncio
    • 异步
    • 协程
  • asyncio之执行并发任务

    Task是与事件循环交互的主要方式之一。 Task包装协程并跟踪它的完成。 Tasks是Future的子类,所以其他协程等待他们并且每一个协程都会获得task完成时返回的结果。 启动Task 使用create_task()创建Task实例启动任务。只要loop正在运行,并且协程没有返回,...

  • asyncio之异步生成结果

    Future代表任务的结果还没有生成。事件循环能够监控Future对象的状态来标示完成,并且允许应用的一部分等待另一部分完成任务。 等待Future Future的行为和协程一样,因此一些有用的等待协程的方法也可以用来等待Future的完成。这个例子将future传递给事件循环的run_...

    • asyncio
    • 异步
    • 协程
  • asyncio之常规函数调用

    除了管理协程和IO回调,asyncio事件循环可以根据loop中保留的定时器来调度常规函数。 调度回调函数”Soon” 如果回调的时间无关紧要,可以使用call_soon()方法在loop的下次迭代中进行调度。方法被调用时可以将一些额外的位置参数传递给回调。可以使用functools模块...

    • asyncio
    • 异步
    • 协程
  • asyncio之协程的多任务处理

    协程是一种用于并发操作的语言结构。协程函数在被调用时创建协程对象,调用者可以使用协程的send()的方法来运行代码。协程通过await可以停止其他协程的执行。停止后的协程的状态是meaintained,在下次被唤醒时从这个地方继续运行。 开始一个协程 有几种不同的方法可以使用asynci...

    • asyncio
    • 异步
    • 协程
  • asyncio之异步协程概念

    最近在学习python3中新的异步模块asyncio, PyMOTW-3 中对asyncio有详细的介绍,所以借此机会将相关的文章翻译出来,供大家一起学习。 由于英文水平有限,翻译难免有些错误,希望大家指正。 现在大多数并发模型是线性写入的,并且依赖于语言运行时或操作系统的底层线程或...

    • asyncio
    • 异步
    • 协程
  • 基于Sanic的微服务基础架构

    基于sanic的微服务基础架构 介绍 使用python做web开发面临的一个最大的问题就是性能,在解决C10K问题上显的有点吃力。有些异步框架Tornado、Twisted、Gevent 等就是为了解决性能问题。这些框架在性能上有些提升,但是也出现了各种古怪的问题难以解决。 在pyt...

    • asyncio
    • sanic
    • aiohttp
    • peewee
    • opentracing
  • Hello World

    Welcome to Hexo ! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answe...