使用每个结果ttl记录异步python调用

aiomemoizettl的Python项目详细描述


艾米莫伊泽特CircleCITest Coverage

使用每个结果ttl记录asyncio python调用

安装

pip install aiomemoizettl

用法

对于其参数可散列的协程,可以通过将其传递给memoize_ttl以及将其返回值转换为ttl的函数来创建memoided版本。

例如,下面的

importasynciofromaiomemoizettlimportmemoize_ttlasyncdefmain():memoized=memoize_ttl(coro,get_ttl=lambdaresult:result['ttl'])results=awaitasyncio.gather(*[memoized(1),memoized(2),])awaitasyncio.sleep(1)results=awaitasyncio.gather(*[memoized(1),memoized(2),# Will used the cached value of `coro(2)`])asyncdefcoro(value):print('Inside coro',value)return{'ttl':value,'some-other':'data'}loop=asyncio.get_event_loop()loop.run_until_complete(main())loop.close()

将输出

Inside coro 1
Inside coro 2
Inside coro 1

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

推荐PyPI第三方库


热门话题
java根据两个数组的值对数组进行排序   具有自签名证书和NTLM代理的java Maven SSL repo错误   java自定义字体按钮不工作AndroidStudio   java通过Spring MVC web应用程序向客户端发送文本文件   Java Spring Web服务SOAP身份验证   ANT property environment=“env”无法在JAVA中检索它,但如果作为ANT命令运行,则可以正常工作   java是为spring mvc rest api或spring boot api对应用服务器的每个新请求创建的服务、存储库和组件的新实例吗?   java私有静态最终字符串未完成其工作   PKCS12的安全Java密钥重新处理   java JPA继承表每类SQLSyntaxErrorException