Metadata-Version: 1.1
Name: rockettm
Version: 2.2.2
Summary: Rocket task manager
Home-page: https://github.com/kianxineki/rockettm
Author: Alberto Galera Jimenez
Author-email: galerajimenez@gmail.com
License: GPL
Description: 
        [![pythonversions](https://img.shields.io/pypi/pyversions/rockettm.svg)](https://pypi.python.org/pypi/rockettm)
        
        # Rocket task manager
        Asynchronous task manager in python
        
        ## Install
        
        ```bash
        pip install rockettm
        ```
        
        Link pypi: https://pypi.python.org/pypi/rockettm
        
        
        ## Example
        
        ### Rabbitmq not is localhost
        ```python
        from rockettm import connect
        
        # to run it, reconnect to RabbitMQ
        connect("other_ip_or_domain")
        
        ```
        
        ### Configure logger in client
        Using standard logger in python
        https://docs.python.org/2/library/logging.html#logging.basicConfig
        
        ```python
        import logging
        from rockettm import send_task
        
        # 50 CRITICAL, 40 ERROR, 30 WARNING, 20 INFO, 10 DEBUG, 0 NOTSET
        logging.basicConfig(level=20)
        send_task("queue_name", "name_task", "Pepito")
        
        ```
        
        ### Configure logger in server
        in settings.py:
        
        ```python
        # filename (DEFAULT "rockettm.log")
        # level (DEFAULT 30)
        # 50 CRITICAL, 40 ERROR, 30 WARNING, 20 INFO, 10 DEBUG, 0 NOTSET
        logger = {'filename': "rockettm.log",  # optional,
                                               # is not defined print in console
                  'level': 10  # optional
                 }
        ```
        
        ### Send task
        ```python
        # send task
        from rockettm import send_task
        
        send_task("queue_name", "name_task", "arg1", ["arg2", "2"], {'args': 3}, ('arg', 4), example="ok")
        
        ```
        
        ### Declare new task
        Warning! if there are 2 tasks registered with the same name, will run 2!
        
        ```python
        # task example
        from rockettm import task
        
        
        @task('name_task')
        def function1(*args, **kwargs):
            return True
        
        # max_time(timeout in seconds) example
        @task('name_task2', max_time=10)
        def long_call(*args, **kwargs):
            return True
        
        ```
        
        ### settings.py example
        ```python
        # settings.py example
        ip = "localhost"
        port = 5672
        
        logger = {'filename': "rockettm.log",  # optional,
                                               # is not defined print in console
                  'level': 10  # optional
                  }
        
        # search @task in imports
        imports = ['examples.test1',
                   'examples.test2']
        
        # support params
        # name (mandatory), string
        # concurrency (mandatory), int
        # durable (optional), boolean
        # max_time (in seconds) (optional), int
        queues = [{'name': 'rocket1', 'durable': True, 'concurrency': 7},
                  {'name': 'rocket2', 'concurrency': 1},
                  {'name': 'rocket3', 'concurrency': 1, 'max_time': 10}]
        
        ```
        
        Run server
        ```bash
        rockettm_server file_settings.py
        ```
        
        ## Documentation
        ### Functions
        - task(name_task_event)
        
        It is a decorator to create tasks
        
        
        - send_task(queue, name_task, *args)
        
        Send task
        
        
        - add_task(name_task, func(object))
        
        Add manual task
        
        
        - connect(ip_or_domain)
        
        connects to another server other than localhost
        
        ## Basicevents
        
        rockettm currently used basicevents for noticificaciones the api. You can use basicevents as its official documentation *
        
        * Do not need to run (), rockettm up a common process for all workers
        
        https://github.com/kianxineki/basicevents
        
        
        
        # CHANGELOG
        ## 2.2.2 (2017-03-31)
        - support force exit
        
        ## 2.2.1 (2017-03-31)
        - sigterm safe
        
        ## 2.2.0 (2017-03-18)
        - callback is optional
        - return callback to rabbitmq (queue results)
        - Support return other results to basicevents (send("results", "type", "data"))
        
        ## 2.1.11 (2016-12-12)
        - Fix dependencies conflict
        
        ## 2.1.11 (2016-11-02)
        - Fix dependencies conflict
        
        ## 2.1.10 (2016-10-20)
        - Clean code
        
        ## 2.1.9 (2016-10-19)
        - prevent infinite callback
        
        ## 2.1.6 (2016-09-29)
        - send return False with failed send
        
        ## 2.1.5 (2016-09-29)
        - Fix name var
        
        ## 2.1.4 (2016-09-29)
        - Support custom id
        
        ## 2.1.3 (2016-09-28)
        - Supported basicevents
        
        ## 2.1.2 (2016-09-28)
        - Fix dead MainThread in Python 3.4.2
        
        ## 2.1.1 (2016-09-21)
        - clean code
        
        ## 2.1.0 (2016-09-21)
        - call api in init tasks and return status task
        
        ## 2.0.6 (2016-09-20)
         - added support kwargs in tasks
        
        ## 2.0.5 (2016-09-07)
         - Revert heartbeat
        
        ## 2.0.4 (2016-09-07)
         - implemented heartbeat
         - fix ack failed for loss connection
        
        ## 2.0.3 (2016-09-07)
         - prevent relaunch finish task
        
        ## 2.0.2 (2016-09-07)
         - Change prefetch to 1
        
        ## 2.0.1 (2016-09-06)
         - Reuse connection in send_tasks
        
        ## 2.0.0 (2016-09-06)
         - Migrate pika to kambu
        
        ## 1.0.16 (2016-09-06)
         - Fix ack
        
        ## 1.0.8 - 1.0.15 (2016-09-06)
         - clean code
        
        ## 1.0.8 - 1.0.13 (2016-09-05)
         - fix timeouts and other exceptions
        
        ## 1.0.7 (2016-09-05)
         - fix rabbitmq ack timeout
        
        ## 1.0.6 (2016-08-26)
         - retry sending the message to the queue 5 times before returning an exception
         - When you add in the queue fails, now returns an exception
        
        ## 1.0.5 (2016-08-26)
         - timekiller stop propagate
         - fix inmortal server
        
        ## 1.0.4 (2016-08-25)
         - run tasks in safe and isolated proccess
        
        ## 1.0.3 (2016-08-25)
         - Solved multiple errors with disconnection with RabbitMQ
         - Update python compatibility (py2.x no loger supported)
        
        ## 1.0.2 (2016-08-23)
         - Fix automatic declare queues
        
        ## 1.0.1 (2016-08-22)
         - send_task now sends the set ip
        
        ## 1.0.0 (2016-07-19)
         - Added callback support
         - generate uuid for task
         - all tasks get _id in first attr
         - if multiple tasks with the same name, if continued with the following fails
         - prevent connection closed to send_task (automatic reconnect)
        
        ## 0.2.6 (2016-07-15)
         - py3 compatibility
         - fix hardcoding durable
         - ignore not exists logger config
        
        ## 0.2.5 (2016-07-15)
         - py3 compatibility
        
        ## 0.2.4 (2016-07-15)
         - Fix automatic declare queue
        
        ## 0.2.3 (2016-06-14)
         - Add new dependency (timekiller)
        
        ## 0.2.2 (2016-06-14)
         - hotfix bad raise
        
        ## 0.2.1 (2016-06-14)
          - Hotfix rabbitmq_server command
        
        ## 0.2.0 (2016-06-13)
          - add support timeout (tasks and queues)
        
        ## 0.1.1 (2016-04-27)
          - Fix dependencies
        
        ## 0.1.0 (2016-03-22)
          - Permit change log
        
        ## 0.0.4 (2016-03-21)
          - Fix CHANGELOG
          - Update README
        
        ## 0.0.3 (2016-03-21)
          - Permit connect different rabbitmq server
          - Prevent channel_closed
          - Support durable queues
        
        ## 0.0.2 (2016-03-14)
          - Add documentation
        
        ## 0.0.1 (2016-03-14)
          - initial version
        
Keywords: rockettm
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
