Scirocco Proyect的客户端库。

scirocco-pyclient的Python项目详细描述


#scirocco pyclient
[![构建状态](https://travis-ci.org/eloylp/scirocco-pyclient.svg?branch=master)(https://travis ci.org/eloylp/scirocco pyclient)




这是一个方便的库,可以与[scirocco服务器](https://github.com/eloylp/scirocco-server)项目进行交互。如果您不知道,请先阅读项目文档。

ub.com/eloylp/scirocco py client.git
python3 setup.py install
````


pip3安装scirocco pyclient
```````` bash
``` bash
pip3 instainstall scirocco pyclient
``````````````````
````>
此客户端中的每个操作都将返回相同的[响应对象](sciroccoclient/responses.py)
,表示操作的状态以及生成的消息负载表示。



它们分别是:

*[scirocco服务器](https://github.com/eloylp/scirocco-server)终结点(注意http/https架构)。
*您预先设置的约定节点id(十六进制字符串,将来将是mongo objectid)。
*用于访问Scirocco服务器实例的主身份验证令牌。

``python


例如填充[scirocco消息对象](scirocclient/messages.py)。

``python
从scirocclient.messages导入scirocco message


msg.payload={"type":"message"}
scirocco.push(msg)

n'
scirocco.push(msg)

```
有关上述代码的一些提示如下:

*payload_type属性是一个50个字符的自由字段,用于确定如何在使用者部分处理数据。如果没有设置,scirocco将用检测到的mime类型填充它。
*计划消息是指在时间框架内到达计划时间之前,消费者无法使用的消息。**警告**,这不是"消耗时间",而是标记为"可用"的时刻。


您将推送二进制文件,并且该项存储为二进制文件,但您将接收到base64表示形式的


``python


nt(response-object.payload)
```


如果没有挂起的消息,客户端将不返回其他消息,它将返回包含元数据和有效负载的响应对象。消息
将其状态更改为"正在处理",因此其他
"拉"操作无法访问该消息。



穆的逻辑st
处理每条消息并创建一个消费者。

回调函数的要求是:

*必须有两个位置参数
*第一个参数用于接收客户端自身进行进一步操作,
类似于ack当前消息。
*第二个参数将是接收到的消息,格式为[sciroccomessage](sciroccoclient/messages.py l6)对象。

``python

print(message.payload)
client.ack(message.metadata.id)

scirocco.onu receive(callback)
```

我被扔进stdout。

如果您不希望这种行为并且希望它是异步的,您可以在第二个参数处指定
,并让程序继续执行。这将返回thread
对象(https://docs.python.org/3.6/library/threading.html thread objects)
,用于控制线程的执行。

``python


on懔receive懔thread=scirocco.on懔receive(callback,true)
print("im ready,send me a message.")

在consumer-thread
on_receive_thread.shutdown()

```

>默认情况下,拉取间隔设置为0.5秒。**这很重要**
根据您的需要进行调整。记住,此时这不是实时解决方案,所以不要滥用服务器太多!

`` python

scirocco.on庘receive(callback,false,2)last param它的拉取间隔,在本例中增加到2秒。

`````

如果要从回调函数内部退出程序,则需要使用选项。这将关闭自定义循环中的线程。

``python


def回调(客户端,消息):

nReceiveCallbackerror

scirocco.on廑receive(callback)
````


r其他进程中的操作


ge id,代码是:

`` python
scirocco.ack('5823a70203c123003de4229b')
````



像这样。

``python
scirocco.get('5823a70203c123003de4229b')
```


r.

`` python
scirocco.get廑all()

``限制结果10(按创建日期排序)
scirocco.get廑all(10)

````

作为第二个参数,新的数据
有效负载。

`` python
scirocco.update_one(msg_id,new_payload)
```

无法撤消。

``python
scirocco.delete椆one('5823a70203c123003de4229b')
````

我们的行动。无法撤消。

``python
scirocco.delete廑all()
````

m/eloylp/scirocco pyclient.git
cd scirocco pyclient
python3 setup.py test
```

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

推荐PyPI第三方库


热门话题
如何使用运行时从JAVA运行openssl命令?   不使用线程安全类(如AtomicInteger和SynchronizedList)的java ProducerConsumer问题   匹配字符串的java模式   在java中使用泛型接口作为返回类型   java将可能具有序列化JSON值的hashmap作为节点添加到JSON字符串中   Eclipse无法从Java8流推断正确的类型   java无法了解标准JButton的大小   java我能用一个循环优化这个函数吗(在第一种方法中)?   Apache CXF中基于WebSocket的java SOAP?   java想要运行奇偶和求和三步   矩阵上随机元素的java集值   java布尔相等:0==a,操作数顺序重要吗?   java Eclipse不会退出我的插件   java如何在spring的SOAP拦截器中获取HttpServletRequest和HttpServletResponse