Tarantool Queue python bindings for asyncio
Project description
Bindings require tarantool version 1.6 and aiotarantool connector:
$ pip install aiotarantool_queue aiotarantool
Try it example:
import asyncio
import aiotarantool_queue
import random
@asyncio.coroutine
def put_job(queue):
for tube_name in ("tube1", "tube2", "tube3"):
tube = queue.tube(tube_name)
task = yield from tube.put({"task_data": random.random()})
@asyncio.coroutine
def take_job(tube):
while True:
task = yield from tube.take(5)
if not task:
break
print(task.data)
yield from task.ack()
loop = asyncio.get_event_loop()
queue = aiotarantool_queue.Queue("127.0.0.1", 3301)
put_tasks = [asyncio.async(put_job(queue))
for _ in range(20)]
take_tasks = [asyncio.async(take_job(queue.tube(tube_name)))
for tube_name in ("tube1", "tube2", "tube3")]
loop.run_until_complete(asyncio.wait(put_tasks + take_tasks))
loop.run_until_complete(queue.close())
loop.close()
This code makes it easy to develop your application to work with queue.
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
File details
Details for the file aiotarantool_queue-0.0.3.tar.gz
.
File metadata
- Download URL: aiotarantool_queue-0.0.3.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f1d3f2a1996f585177885772639f1efcdb1f5430fde8cc476e55ab080ea9dcc |
|
MD5 | bdd3dc30cf214f66ba2a78f5bf277303 |
|
BLAKE2b-256 | 3ca6e53b4e50a18c6e7309a062adb52359aadb4ec9bdb2f083d3c44bfc022e1f |