没有项目描述

aioerl的Python项目详细描述


全部

PyPI version

aioerl是一个python库,它用异步任务模拟erlang进程的原理。

实现以下想法:

  • 每个进程都有一个邮箱:从其他进程接收消息的队列。
  • 消息传递:进程完全与消息通信(从开发人员的角度来看)
  • 1,进程可以监视其他进程(当进程死亡或崩溃时,以退出原因或异常向其主管发送消息)<

为什么?

asyncio非常棒,内置的结构如asyncio.Queue对于任务之间的通信非常有用,但是很难管理错误。

使用aioerl,进程只需等待来自其他进程的传入消息,并决定如何处理每个事件(请参见example)。

快速启动

要求:python 3.7+

安装:

pip install aioerl

示例

fromaioerlimportspawn_monitored,receive,reply,send,runasyncdefping_pong():whileTrue:m=awaitreceive(timeout=10)ifm.is_ok:ifm.body=="ping":awaitreply("pong")else:raiseException("Invalid message body")elifm.is_timeout:return# terminate processasyncdefmain():p=awaitspawn_monitored(ping_pong())awaitsend(p,"ping")print(awaitreceive())# Message(sender=<ErlProc:2>, event='ok', body='pong')awaitsend(p,"pang")print(awaitreceive())# Message(sender=<ErlProc:2>, event='err', body=Exception("Invalid message body"))awaitsend(p,"ping")print(awaitreceive())# Message(sender=<ErlProc:2>, event='exit', body='noproc')if__name__=="__main__":run(main())

待办事项:

很多事情!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用jaxb2annotateplugin和XJC工具的java自定义注释   java组织。xeustechnologies。jcl无法加载WstxInputFactory类   java JUnit在格式化字符串上比较失败   java Bukkit配置部分getKeys   如何关闭Java流?   java Struts2正则表达式配置   链式事务注释的java奇怪行为   java在两个JButton之间使用变量   java签署APK时内容会发生什么变化?   java LWJGL:Slick:3D世界中的绘图字体   如何分解Java数组?   在Java MySql中处理多个过滤器   java如何在Firebase数据库中跳过初始OnChildaded事件触发   java如何在PreviewView中使用CameraX?   在子类#中重写父类后访问父类原始方法的java已解决   java找不到类型的属性   游戏框架游戏!框架+Java