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/)
=============
api。相反,对于用户应该如何
与rabbitmq交互,它有一个自以为是的观点。
client=puka.client("amqp://localhost/")
promise=client.queue_declare(queue='test')
client.wait(promise)
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":
client.run庠any庠callbacks()
[fd])
如果r或e:
client.on_read()
如果w:
client.on_write()
puka很快
----
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/)