puka-固执己见的rabbitmq客户端

puka的Python项目详细描述


puka-固执己见的rabbitmq客户机
=============


类似的库相反,它不尝试公开通用的amqp
api。相反,对于用户应该如何
与rabbitmq交互,它有一个自以为是的观点。



----

`publisher`示例:



client=puka.client("amqp://localhost/")

client.wait(promise)

promise=client.queue_declare(queue='test')
client.wait(promise)

body='hello world!')
client.wait(promise)


----

中所看到的,它可以同步运行。当您不想引入回调时,这对于
简单任务尤其有用。



def on_queue_declare(promise,result):
client.basic_publish(exchange='',routing_key='test',
body='hello world!,
callback=on_basic_publish)

on_basic_publish上的def(promise,result):
print"[*]message sent"
client.loop_break()

client=puka.client("amqp://localhost/"
client.connect(callback=on_connection)
client.loop()

但是,当网络套接字上有新数据可用时,您有责任通知
。为了允许这一点,puka允许您访问原始套接字描述符。有了它
您可以构建自己的事件循环。下面是一个事件循环,它可以替换前面示例中的"wait庠any":

为true时:
client.run庠any庠callbacks()

[fd],如果client.needs庠write()else[],
[fd])
如果r或e:
client.on_read()
如果w:
client.on_write()




puka很快
----

示例,此代码段并行创建1000个队列:

promises=[client.queue_declare(queue=%04i'%i)for i in range(1000)]
for promise in promises:
client.wait(promise)

puka还具有一个经过优化的amqp编解码器,但不要期待奇迹
-它不能比python快。

----




puka与普通amqp库之间的主要区别包括:

-puka不向u公开amqp通道。sers.
-puka将"basic_publish"视为同步方法。您可以在上面等待
,并确保您的数据已送达。或者,
您可以忽略这个承诺,将其视为异步命令。
-puka尝试处理amqp异常,并以可预测的方式向用户公开它们。与其他库不同,它是
可能的(并且是推荐的!)从AMQP错误中恢复。


puka是一个实验性的项目,主要是为了证明是否有可能在amqp协议的基础上创建一个合理的api。再给我看看!
----


最好的例子可以从
[rabbitmq教程回购](https://github.com/rabbitmq/rabbitmq tutorials/tree/master/python puka)开始。一些有趣的部分:

-`./examples/send.py`:发送一条消息隐藏在
tests(请参见`./tests`目录)中的已命名示例。




i want to install puka
-



您可以使用pip在系统范围内安装puka:

sudo pip install puka

l它在"virtualenv"本地环境中:

virtualenv my_venv
pip-e my_venv install puka

或者如果您需要来自主干的代码:


sudo pip install-e git+http://github.com/majek/puka.git\egg=puka


——

很好。确保安装了"rabbitmq"服务器,并按照以下步骤操作:


git clone https://github.com/majek/puka.git
cd puka
make
cd examples


现在可以运行这些示例了,请从:

python send.py



api文档开始的最简单方法是查看示例并根据需要进行调整。现在还没有详细的文档。如果它存在的话,它会生活在这里:

[http://majek.github.com/puka/](http://majek.github.com/puka/)

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

推荐PyPI第三方库


热门话题
与ReentrantLock相比,java ReentrantReadWriteLock的性能非常差   java如何使用Maven Android Studio正确导入?   安卓将ADB添加到我的Java PC应用程序   反射Java getDeclaredConstructor失败,来自JUnit的NoSuchMethodException   JSP上siteedit标记库的java替代   JavaSpring环境概要文件和JPA   java中是否有一个类似于StringBuilder的类,唯一的区别是它具有固定的长度?   JavaMathContext。小数点32 vs MathContext。小数点64,使用哪一个,为什么?   java使用spring在Ibm Websphere MQ中实现重试逻辑   java调用SpriteBatch。开始()和结束()   java有一种从文本中读取文本的方法。文件,并将其设置为pom中的maven属性。xml专家?   java让sitemesh使用struts2   Java Swing:在现有窗口上定位对话框   使用带有MemSql的JPA本机查询的java Select json列