ASNCIO异步/等待NSQ支持
asyncnsq的Python项目详细描述
异步Q
支持python3.6 await/async的异步nsq
如果您不喜欢pynsq(使用tornado)方式与nsq交互,则此库可能适合您
您可以使用此库作为编写内容的常用方法
重要
从1.0.0版开始,AsyncNSQ在API中有中断更改
还不稳定
您可能需要使用稳定的“pip install asyncnsq==0.4.5”
功能
http客户端
- 支持nsq http提供的所有方法
TCP客户端
连接
- 低电平连接。
读卡器
来自两个lookupd的读卡器,用于自动查找nsqd
已知NSQD的列表,但它们不能一起使用。
以上两种不能同时使用
写入程序
- nsqd writer的所有常用方法
安装
来自两个lookupd的读卡器,用于自动查找nsqd
已知NSQD的列表,但它们不能一起使用。
以上两种不能同时使用
pip安装asyncnsq
用法示例
你只需要一个循环,然后享受。你也可以参考例子。
消费者:
fromasyncnsqimportcreate_readerfromasyncnsq.utilsimportget_loggerloop=asyncio.get_event_loop()asyncdefgo():try:reader=awaitcreate_reader(nsqd_tcp_addresses=['127.0.0.1:4150'],max_in_flight=200)awaitreader.subscribe('test_async_nsq','nsq')asyncformessageinreader.messages():print(message.body)awaitmessage.fin()exceptExceptionastmp:self.logger.exception(tmp)loop.run_until_complete(go())
制作人:
fromasyncnsqimportcreate_writerloop=asyncio.get_event_loop()asyncdefgo():writer=awaitcreate_writer(host='127.0.0.1',port=4150,heartbeat_interval=30000,feature_negotiation=True,tls_v1=True,snappy=False,deflate=False,deflate_level=0,loop=loop)foriinrange(100):awaitwriter.pub('test_async_nsq','test_async_nsq:{i}'.format(i=i))awaitwriter.dpub('test_async_nsq',i*1000,'test_delay_async_nsq:{i}'.format(i=i))loop.run_until_complete(go())
要求
Python3.5+https://www.python.org
NSQ http://nsq.io
Python敏捷
- 乌班图:
- sudo apt get install libsnappy dev
- pip安装python snappy
- 中心:
- sudo yum install snappy devel
- pip安装python snappy
- 麦克:
- brew从google安装snappy snappy库
- cppflags=“-i/usr/local/include-l/usr/local/lib”pip安装python snappy
- 乌班图:
许可证
asyncnsq是在mit许可下提供的。