A lightweight and convenient cross network FIFO queue service based on TCP protocol.
Project description
中文版 | English
wukongqueue
一个纯Python3实现的轻量且易于使用的跨网络队列服务
wukongqueue的本地队列服务的实现基于Python标准库
queue
.
特点
- 快(基于tcp长连接通信)
- 支持所有Python原生类型
- 支持断开自动重连
- 上手成本低,api使用和标准库
queue
保持一致 - 可设置认证秘钥
环境要求
- Python3.5+ (need type hints)
安装
pip install wukongqueue
例子
server.py
from wukongqueue import WuKongQueue
import time
# start a queue server
svr = WuKongQueue(host='127.0.0.1',port=666,max_conns=10,max_size=0)
with svr:
print("svr is started!")
svr.put(b"1")
time.sleep(10)
svr.put(b"2")
print("wait for clients...")
time.sleep(10)
print("putted b'1' and b'2', svr closed!")
clientA.py
from wukongqueue import WuKongQueueClient
client = WuKongQueueClient(host='127.0.0.1', port=666)
with client:
print("got",client.get()) # b"1"
client.task_done()
print("after 10 seconds, got",client.get(block=True)) # wait for 3 seconds, then print b"2"
client.task_done()
print("clientA: all task done!")
clientB.py
from wukongqueue import WuKongQueueClient
client = WuKongQueueClient(host='127.0.0.1', port=666)
with client:
client.join()
print("clientB all task done!")
按上面的顺序启动三个程序,可以看到如下打印:
# server.py 首先打印
svr is started! (马上)
wait for clients... (3秒后)
putted b'1' and b'2', svr closed! (10秒后)
# clientA print secondly
got b'1' (马上)
after 3 seconds, got b'2' (3秒后)
clientA: all task done! (马上)
# clientB print lastly
clientB all task done! (马上)
版本发布日志
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wukongqueue-0.0.6a1.tar.gz
(14.4 kB
view hashes)
Built Distribution
Close
Hashes for wukongqueue-0.0.6a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17a36d49c258d9974a2ae5a25cee8fd5bc395e0de012d5188e8d32e7ead15bb6 |
|
MD5 | 0ddad50d5fe1a9659285d868690d2a9e |
|
BLAKE2b-256 | bd88e1b28b4857e1c20d9770fe82266dabd0ebb750c69d803a300443bf4d1000 |