Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiotarantool_queue-0.0.3.tar.gz (4.3 kB view details)

Uploaded Source

File details

Details for the file aiotarantool_queue-0.0.3.tar.gz.

File metadata

File hashes

Hashes for aiotarantool_queue-0.0.3.tar.gz
Algorithm Hash digest
SHA256 8f1d3f2a1996f585177885772639f1efcdb1f5430fde8cc476e55ab080ea9dcc
MD5 bdd3dc30cf214f66ba2a78f5bf277303
BLAKE2b-256 3ca6e53b4e50a18c6e7309a062adb52359aadb4ec9bdb2f083d3c44bfc022e1f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page