Package: rockettm
Rocket task managerAsynchronous task manager in pythonInstallpipinstallrockettmLink pypi:https://pypi.python.org/pypi/rockettmExampleRedis not is localhostfromrockettmimportconnect# to run it, reconnect to Redisconnect("other_ip_or_domain")Configure logger in clientUsing standard logger in pythonhttps://docs.python.org/2/library/logging.html#logging.basicConfigimportloggingfromrockettmimportsend_task# 50 CRITICAL, 40 ERROR, 30 WARNING, 20 INFO, 10 DEBUG, 0 NOTSETlogging.basicConfig(level=20)send_task("queue_name","name_task","Pepito")Configure logger in serverin settings.py:# filename (DEFAULT "rockettm.log")# level (DEFAULT 30)# 50 CRITICAL, 40 ERROR, 30 WARNING, 20 INFO, 10 DEBUG, 0 NOTSETlogger={'filename':"rockettm.log",# optional,# is not defined print in console'level':10# optional}Send task# send taskfromrockettmimportsend_tasksend_task("queue_name","name_task","arg1",["arg2","2"],{'args':3},('arg',4),example="ok")Declare new taskWarning! if there are 2 tasks registered with the same name, will run 2!# task examplefromrockettmimporttask@task('name_task')deffunction1(*args,**kwargs):returnTrue# max_time(timeout in seconds) example@task('name_task2',max_time=10)deflong_call(*args,**kwargs):returnTruesettings.py example# settings.py exampleip="127.0.0.1"port=5672logger={'filename':"rockettm.log",# optional,# is not defined print in console'level':10# optional}# search @task in importsimports=['examples.test1','examples.test2']# support params# name (mandatory), string# concurrency (mandatory), int# durable (optional), boolean# max_time (in seconds) (optional), intqueues=[{'name':'rocket1','durable':True,'concurrency':7},{'name':'rocket2','concurrency':1},{'name':'rocket3','concurrency':1,'max_time':10}]Run serverrockettm_serverfile_settings.pyDocumentationFunctionstask(name_task_event)It is a decorator to create taskssend_task(queue, name_task, *args)Send taskadd_task(name_task, func(object))Add manual taskconnect(ip_or_domain)connects to another server other than localhostBasiceventsrockettm 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 workershttps://github.com/agalera/basiceventsCHANGELOG2.2.13 (2017-05-16)remove prints …2.2.12 (2017-05-16)fix gevent incompatibility (timekiller)2.2.11 (2017-05-11)fix gevent incompatibility2.2.10 (2017-04-24)qsize support name and namespace argumentsempty support name and namespace arguments2.2.9 (2017-04-19)only support ujsonfix serializer2.2.8 (2017-04-19)fix import2.2.4 (2017-04-19)fix dependencies2.2.3 (2017-04-07)Graceful stop2.2.2 (2017-03-31)support force exit2.2.1 (2017-03-31)sigterm safe2.2.0 (2017-03-18)callback is optionalreturn callback to rabbitmq (queue results)Support return other results to basicevents (send(“results”, “type”,
“data”))2.1.11 (2016-12-12)Fix dependencies conflict2.1.11 (2016-11-02)Fix dependencies conflict2.1.10 (2016-10-20)Clean code2.1.9 (2016-10-19)prevent infinite callback2.1.6 (2016-09-29)send return False with failed send2.1.5 (2016-09-29)Fix name var2.1.4 (2016-09-29)Support custom id2.1.3 (2016-09-28)Supported basicevents2.1.2 (2016-09-28)Fix dead MainThread in Python 3.4.22.1.1 (2016-09-21)clean code2.1.0 (2016-09-21)call api in init tasks and return status task2.0.6 (2016-09-20)added support kwargs in tasks2.0.5 (2016-09-07)Revert heartbeat2.0.4 (2016-09-07)implemented heartbeatfix ack failed for loss connection2.0.3 (2016-09-07)prevent relaunch finish task2.0.2 (2016-09-07)Change prefetch to 12.0.1 (2016-09-06)Reuse connection in send_tasks2.0.0 (2016-09-06)Migrate pika to kambu1.0.16 (2016-09-06)Fix ack1.0.8 - 1.0.15 (2016-09-06)clean code1.0.8 - 1.0.13 (2016-09-05)fix timeouts and other exceptions1.0.7 (2016-09-05)fix rabbitmq ack timeout1.0.6 (2016-08-26)retry sending the message to the queue 5 times before returning an
exceptionWhen you add in the queue fails, now returns an exception1.0.5 (2016-08-26)timekiller stop propagatefix inmortal server1.0.4 (2016-08-25)run tasks in safe and isolated proccess1.0.3 (2016-08-25)Solved multiple errors with disconnection with RabbitMQUpdate python compatibility (py2.x no loger supported)1.0.2 (2016-08-23)Fix automatic declare queues1.0.1 (2016-08-22)send_task now sends the set ip1.0.0 (2016-07-19)Added callback supportgenerate uuid for taskall tasks get _id in first attrif multiple tasks with the same name, if continued with the following
failsprevent connection closed to send_task (automatic reconnect)0.2.6 (2016-07-15)py3 compatibilityfix hardcoding durableignore not exists logger config0.2.5 (2016-07-15)py3 compatibility0.2.4 (2016-07-15)Fix automatic declare queue0.2.3 (2016-06-14)Add new dependency (timekiller)0.2.2 (2016-06-14)hotfix bad raise0.2.1 (2016-06-14)Hotfix rabbitmq_server command0.2.0 (2016-06-13)add support timeout (tasks and queues)0.1.1 (2016-04-27)Fix dependencies0.1.0 (2016-03-22)Permit change log0.0.4 (2016-03-21)Fix CHANGELOGUpdate README0.0.3 (2016-03-21)Permit connect different rabbitmq serverPrevent channel_closedSupport durable queues0.0.2 (2016-03-14)Add documentation0.0.1 (2016-03-14)initial version