Metadata-Version: 1.1
Name: asynctnt-queue
Version: 0.0.4
Summary: Tarantool Queue python/asyncio bindings
Home-page: https://github.com/igorcoding/asynctnt-queue
Author: igorcoding
Author-email: igorcoding@gmail.com
License: Apache Software License
Description-Content-Type: UNKNOWN
Description: asynctnt-queue
        ==============
        
        |Build Status| |PyPI|
        
        asynctnt-queue is a python/asyncio bindings library for
        `tarantool-queue <https://github.com/tarantool/queue>`__ package in
        `Tarantool Database <https://tarantool.org/>`__, integrated with
        `asynctnt <https://github.com/igorcoding/asynctnt>`__ module.
        
        Documentation
        -------------
        
        Documentation is available
        `here <https://igorcoding.github.io/asynctnt-queue>`__.
        
        Installation
        ------------
        
        Use pip to install:
        
        .. code:: bash
        
            $ pip install asynctnt-queue
        
        Basic Usage
        -----------
        
        Tarantool config:
        
        .. code:: lua
        
            box.cfg {
                listen = '127.0.0.1:3301'
            }
        
            box.once('v1', function()
                box.schema.user.grant('guest', 'read,write,execute', 'universe')
            end)
        
            queue = require('queue')
            queue.create_tube('test_tube', 'fifottl')
        
        Python code:
        
        .. code:: python
        
            import asyncio
            import asynctnt
            import asynctnt_queue
        
        
            async def run():
                conn = asynctnt.Connection(host='127.0.0.1', port=3301)
                await conn.connect()
                
                queue = asynctnt_queue.Queue(conn)
                test_tube = queue.tube('test_tube')
                
                # Add a task to queue
                task = await test_tube.put({
                    'key': 'value'
                })
                
                print('Task id: {}'.format(task.task_id))
                print('Task status: {}'.format(task.status))
                
                # Retrieve a task from queue
                task = await test_tube.take(1)
                
                # ... do some work with task
                
                await task.ack()
                await conn.disconnect()
        
            loop = asyncio.get_event_loop()
            loop.run_until_complete(run())
        
        References
        ----------
        
        1. `Tarantool <https://tarantool.org>`__ - in-memory database and
           application server.
        2. `asynctnt <https://github.com/igorcoding/asynctnt>`__ - fast
           Tarantool database connector for Python/asyncio
        3. `aiotarantool <https://github.com/shveenkov/aiotarantool>`__ -
           alternative Python/asyncio connector
        
        .. |Build Status| image:: https://travis-ci.org/igorcoding/asynctnt-queue.svg?branch=master
           :target: https://travis-ci.org/igorcoding/asynctnt-queue
        .. |PyPI| image:: https://img.shields.io/pypi/v/asynctnt-queue.svg
           :target: https://pypi.python.org/pypi/asynctnt-queue
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Database :: Front-Ends
