From 4dd9e72fd596d6795d43a423219f5000e58b9a61 Mon Sep 17 00:00:00 2001 From: jason Date: Thu, 16 Mar 2017 09:51:53 -0600 Subject: update docs --- _sources/settings_file.rst.txt | 70 ++++++++++++++++++++++++++++++++++- api.html | 2 +- client.html | 2 +- client/jobs.html | 2 +- client/messages.html | 6 +-- contributing.html | 2 +- exceptions.html | 2 +- genindex.html | 2 +- index.html | 2 +- jobmanager.html | 2 +- objects.inv | Bin 1843 -> 1843 bytes poller.html | 2 +- protocol.html | 2 +- py-modindex.html | 2 +- receiver.html | 2 +- router.html | 2 +- search.html | 2 +- searchindex.js | 2 +- sender.html | 2 +- settings_file.html | 81 +++++++++++++++++++++++++++++++++++++++-- using.html | 3 +- utils/classes.html | 2 +- utils/devices.html | 2 +- utils/index.html | 2 +- utils/messages.html | 2 +- utils/settings.html | 2 +- utils/timeutils.html | 2 +- 27 files changed, 172 insertions(+), 32 deletions(-) diff --git a/_sources/settings_file.rst.txt b/_sources/settings_file.rst.txt index 17d3b67..43c922c 100644 --- a/_sources/settings_file.rst.txt +++ b/_sources/settings_file.rst.txt @@ -3,14 +3,68 @@ Server Settings (eventmq.conf) ############################## EventMQ uses a standard INI style config file found at ``/etc/eventmq.conf``. +****** +Global +****** + +super_debug +=========== +Default: False + +Enable most verbose level of debug statements + ****** Router ****** +frontend_addr +============= +Default: 'tcp://127.0.0.1:47291' + +The address used to listen for client and scheduler connections + + +backend_addr +============ +Default: 'tcp://127.0.0.1:47291' + +The address used to listen for connections from workers + ********* Scheduler ********* +scheduler_addr +============== +Default: 'tcp://127.0.0.1:47291' + +The address the scheduler will use to connect to the broker + +rq_host +======= +Default: 'localhost' + +The hostname of the redis server used to persist scheduled jobs. This is +expected to support redis' save operation which saves the contents to disk. + +rq_port +======= +Default: 6379 + +Port of redis server to connect to. + +rq_db +===== +Default: 0 + +Which redis database to use + +rq_password +=========== +Default: '' + +Password to use when connecting to redis + *********** Job Manager *********** @@ -35,7 +89,7 @@ queues ====== Default: [[10, "default"]] -Comma seperated list of queues to process jobs for with thier weights. This list +Comma seperated list of queues to process jobs for with their weights. This list must be valid JSON otherwise an error will be thrown. Example: ``queues=[[10, "data_process"], [15, "email"]]``. With these weights and the ``CONCURRENT_JOBS`` setting, you should be able to tune managers @@ -50,3 +104,17 @@ number until the large box is ready to accept another q1 job. It is recommended that you have some workers listening for jobs on your default queue so that anything that is not explicitly assigned will still be run. + +setup_callabe/setup_path +======================== +Default: '' (Signifies no task will be attempted) + +Strings containing path and callable to be run when a worker is spawned +if applicable to that type of worker. Currently the only supported worker is a +MultiProcessWorker, and is useful for pulling any global state into memory. + +max_job_count +============= +Default: 1024 + +After a worker runs this amount of jobs, it will gracefully exit and be replaced diff --git a/api.html b/api.html index 9dda10b..b62bf69 100755 --- a/api.html +++ b/api.html @@ -63,7 +63,7 @@
- 0.3.2 + 0.3.3
diff --git a/client.html b/client.html index 8e47b54..1d970ff 100755 --- a/client.html +++ b/client.html @@ -64,7 +64,7 @@
- 0.3.2 + 0.3.3
diff --git a/client/jobs.html b/client/jobs.html index 7ca6972..4a58384 100755 --- a/client/jobs.html +++ b/client/jobs.html @@ -64,7 +64,7 @@
- 0.3.2 + 0.3.3
diff --git a/client/messages.html b/client/messages.html index d31d5e3..f864c67 100755 --- a/client/messages.html +++ b/client/messages.html @@ -64,7 +64,7 @@
- 0.3.2 + 0.3.3
@@ -155,7 +155,7 @@

messages – Client Messaging

-eventmq.client.messages.defer_job(socket, func, wrapper=None, args=(), kwargs=None, class_args=(), class_kwargs=None, reply_requested=False, guarantee=False, retry_count=0, timeout=0, debounce_secs=False, queue='default')
+eventmq.client.messages.defer_job(socket, func, args=(), kwargs=None, class_args=(), class_kwargs=None, reply_requested=False, guarantee=False, retry_count=0, timeout=0, debounce_secs=False, queue='default')

Used to send a job to a worker to execute via socket.

This tries not to raise any exceptions so use some of the message flags to guarentee things.

@@ -171,8 +171,6 @@ guarentee things.

  • socket (socket) – eventmq socket to use for sending the message
  • func (callable or str) – the callable (or string path to callable) to be deferred to a worker
  • -
  • wrapper (callable) – optional wrapper for the call to func to be -wrapped with
  • args (list) – list of *args for the callable
  • kwargs (dict) – dict of **kwargs for the callable
  • class_args (list) – list of *args to pass to the the class when diff --git a/contributing.html b/contributing.html index 10eeb56..edaa240 100755 --- a/contributing.html +++ b/contributing.html @@ -63,7 +63,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/exceptions.html b/exceptions.html index dd40dd1..393acee 100755 --- a/exceptions.html +++ b/exceptions.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/genindex.html b/genindex.html index 575d772..bd91827 100755 --- a/genindex.html +++ b/genindex.html @@ -62,7 +62,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/index.html b/index.html index 2ea447d..e72b830 100755 --- a/index.html +++ b/index.html @@ -62,7 +62,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/jobmanager.html b/jobmanager.html index 52e465a..bc05140 100755 --- a/jobmanager.html +++ b/jobmanager.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/objects.inv b/objects.inv index 970792d..58801a1 100755 Binary files a/objects.inv and b/objects.inv differ diff --git a/poller.html b/poller.html index 53ae9ab..1538bd8 100755 --- a/poller.html +++ b/poller.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/protocol.html b/protocol.html index 5e804b2..e0a094f 100755 --- a/protocol.html +++ b/protocol.html @@ -63,7 +63,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/py-modindex.html b/py-modindex.html index 0029b8f..fd080df 100755 --- a/py-modindex.html +++ b/py-modindex.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/receiver.html b/receiver.html index 99de720..7e5f826 100755 --- a/receiver.html +++ b/receiver.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/router.html b/router.html index 97c5410..59a2f38 100755 --- a/router.html +++ b/router.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/search.html b/search.html index 12888be..293a908 100755 --- a/search.html +++ b/search.html @@ -61,7 +61,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/searchindex.js b/searchindex.js index dd15a3b..101cdd7 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api","client","client/jobs","client/messages","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","settings_file","using","utils/classes","utils/devices","utils/index","utils/messages","utils/settings","utils/timeutils"],envversion:50,filenames:["api.rst","client.rst","client/jobs.rst","client/messages.rst","contributing.rst","exceptions.rst","index.rst","jobmanager.rst","poller.rst","protocol.rst","receiver.rst","router.rst","sender.rst","settings_file.rst","using.rst","utils/classes.rst","utils/devices.rst","utils/index.rst","utils/messages.rst","utils/settings.rst","utils/timeutils.rst"],objects:{"eventmq.client":{jobs:[2,0,0,"-"],messages:[3,0,0,"-"]},"eventmq.client.jobs":{Job:[2,1,1,""],job:[2,4,1,""],schedule:[2,4,1,""],unschedule:[2,4,1,""]},"eventmq.client.jobs.Job":{__init__:[2,2,1,""],__weakref__:[2,3,1,""]},"eventmq.client.messages":{defer_job:[3,4,1,""],schedule:[3,4,1,""],send_request:[3,4,1,""],send_schedule_request:[3,4,1,""]},"eventmq.exceptions":{CallableFromPathError:[5,5,1,""],ConnectionError:[5,5,1,""],EventMQError:[5,5,1,""],InvalidMessageError:[5,5,1,""],MessageError:[5,5,1,""],NoAvailableWorkerSlotsError:[5,5,1,""],PeerGoneAwayError:[5,5,1,""],UnknownQueueError:[5,5,1,""]},"eventmq.jobmanager":{JobManager:[7,1,1,""]},"eventmq.jobmanager.JobManager":{__init__:[7,2,1,""],check_worker_health:[7,2,1,""],concurrent_jobs:[7,3,1,""],jobmanager_main:[7,2,1,""],name:[7,3,1,""],on_heartbeat:[7,2,1,""],on_request:[7,2,1,""],outgoing:[7,3,1,""],queues:[7,3,1,""],request_queue:[7,3,1,""],send_ready:[7,2,1,""],send_reply:[7,2,1,""]},"eventmq.poller":{Poller:[8,1,1,""]},"eventmq.poller.Poller":{__init__:[8,2,1,""],poll:[8,2,1,""],register:[8,2,1,""],unregister:[8,2,1,""]},"eventmq.receiver":{Receiver:[10,1,1,""]},"eventmq.receiver.Receiver":{__init__:[10,2,1,""],connect:[10,2,1,""],listen:[10,2,1,""],name:[10,3,1,""],ready:[10,3,1,""],unbind:[10,2,1,""],zcontext:[10,3,1,""],zsocket:[10,3,1,""]},"eventmq.router":{Router:[11,1,1,""]},"eventmq.router.Router":{add_scheduler:[11,2,1,""],add_worker:[11,2,1,""],clean_up_dead_schedulers:[11,2,1,""],clean_up_dead_workers:[11,2,1,""],executed_functions:[11,3,1,""],get_available_worker:[11,2,1,""],get_status:[11,2,1,""],job_latencies:[11,3,1,""],on_disconnect:[11,2,1,""],on_heartbeat:[11,2,1,""],on_inform:[11,2,1,""],on_ready:[11,2,1,""],on_reply:[11,2,1,""],on_request:[11,2,1,""],prioritize_queue_list:[11,6,1,""],process_client_message:[11,2,1,""],process_worker_message:[11,2,1,""],queues:[11,3,1,""],received_disconnect:[11,3,1,""],requeue_worker:[11,2,1,""],reset_heartbeat_counters:[11,2,1,""],router_main:[11,2,1,""],scheduler_queue:[11,3,1,""],schedulers:[11,3,1,""],send_ack:[11,2,1,""],send_heartbeat:[11,2,1,""],send_schedulers_heartbeats:[11,2,1,""],send_workers_heartbeats:[11,2,1,""],sighup_handler:[11,2,1,""],start:[11,2,1,""],waiting_messages:[11,3,1,""],workers:[11,3,1,""]},"eventmq.sender":{Sender:[12,1,1,""]},"eventmq.sender.Sender":{__init__:[12,2,1,""],connect:[12,2,1,""],listen:[12,2,1,""],name:[12,3,1,""],ready:[12,3,1,""],rebuild:[12,2,1,""],unbind:[12,2,1,""],zcontext:[12,3,1,""],zsocket:[12,3,1,""]},"eventmq.utils":{classes:[15,0,0,"-"],devices:[16,0,0,"-"],messages:[18,0,0,"-"],random_characters:[17,4,1,""],settings:[19,0,0,"-"],timeutils:[20,0,0,"-"],tuplify:[17,4,1,""]},"eventmq.utils.classes":{EMQPService:[15,1,1,""],EMQdeque:[15,1,1,""],HeartbeatMixin:[15,1,1,""],ZMQReceiveMixin:[15,1,1,""],ZMQSendMixin:[15,1,1,""]},"eventmq.utils.classes.EMQPService":{__weakref__:[15,3,1,""],is_heartbeat_enabled:[15,3,1,""],on_ack:[15,2,1,""],process_message:[15,2,1,""],reset:[15,2,1,""],send_inform:[15,2,1,""],start:[15,2,1,""]},"eventmq.utils.classes.EMQdeque":{__init__:[15,2,1,""],__weakref__:[15,3,1,""],append:[15,2,1,""],appendleft:[15,2,1,""],extend:[15,2,1,""],is_empty:[15,2,1,""],is_full:[15,2,1,""],is_pfull:[15,2,1,""],peek:[15,2,1,""],peekleft:[15,2,1,""],pop:[15,2,1,""],popleft:[15,2,1,""],remove:[15,2,1,""]},"eventmq.utils.classes.HeartbeatMixin":{__init__:[15,2,1,""],__weakref__:[15,3,1,""],is_dead:[15,2,1,""],reset_heartbeat_counters:[15,2,1,""],send_heartbeat:[15,2,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{__weakref__:[15,3,1,""],recv:[15,2,1,""],recv_multipart:[15,2,1,""]},"eventmq.utils.classes.ZMQSendMixin":{__weakref__:[15,3,1,""],send:[15,2,1,""],send_multipart:[15,2,1,""]},"eventmq.utils.devices":{generate_device_name:[16,4,1,""]},"eventmq.utils.messages":{fwd_emqp_router_message:[18,4,1,""],generate_msgid:[18,4,1,""],parse_message:[18,4,1,""],parse_router_message:[18,4,1,""],send_emqp_message:[18,4,1,""],send_emqp_router_message:[18,4,1,""]},"eventmq.utils.settings":{import_settings:[19,4,1,""]},"eventmq.utils.timeutils":{IntervalIter:[20,1,1,""],monotonic:[20,4,1,""],seconds_until:[20,4,1,""],timestamp:[20,4,1,""]},"eventmq.utils.timeutils.IntervalIter":{__init__:[20,2,1,""],__weakref__:[20,3,1,""]},eventmq:{client:[1,0,0,"-"],exceptions:[5,0,0,"-"],jobmanager:[7,0,0,"-"],poller:[8,0,0,"-"],receiver:[10,0,0,"-"],router:[11,0,0,"-"],sender:[12,0,0,"-"],utils:[17,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","function","Python function"],"5":["py","exception","Python exception"],"6":["py","classmethod","Python class method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:function","5":"py:exception","6":"py:classmethod"},terms:{"0mq":[9,15],"5min":20,"abstract":9,"boolean":15,"case":[9,15,20],"class":[0,2,3,7,8,10,11,12,17,20],"default":[2,3,7,9,10,11,12,13,15],"float":[15,20],"function":[2,3,11],"import":[2,3,4,7,11,13,19],"int":[2,3,8,9,11,15,20],"long":[8,15],"new":[11,15],"public":9,"return":[2,3,4,8,10,11,12,15,16,17,18,20],"short":11,"true":[2,9,10,11,12,15],"while":9,FOR:9,For:15,NOT:9,The:[2,3,7,8,9,10,11,12,14,15,18],There:11,These:5,Use:4,Used:[3,11],Useful:[7,15,18],Using:6,With:13,__init__:[2,7,8,10,12,15,20],__weakref__:[2,15,20],_empty_:9,_headers_:9,_msg_:9,_msgid_:9,_queue_name_:9,_queues_:9,_recipient_id:15,_topic_name_:9,_unix_ts_:9,abl:[11,13],about:[7,9,11],absolut:4,accept:[9,13,15],account:[11,18],ack:[7,9,11],ackd_msgid:15,acknowledg:[7,9,11],across:9,act:[1,9],actual:[7,11],add:11,add_schedul:11,add_work:11,added:15,adding:15,addr:[10,12,15],address:[2,7,10,11,12,14],administrative_addr:11,after:9,agre:9,all:[2,3,5,7,9,10,11,12,15],allow:9,alpha:9,alreadi:11,also:15,alwai:3,and_data:18,ani:[3,7,9,11,14,17],announc:11,anoth:[7,11,13],anyth:13,api:[6,9],app:[2,15],appear:8,append:15,appendleft:15,appened:11,appli:19,applic:[2,3,9,14],arg2:3,arg3:3,arg:[2,3,7,8,10,11,12,15],argument:15,arithmet:20,arrai:9,as_str:2,ascii:16,assign:13,assum:20,async:2,attempt:[5,11],attr:8,automat:15,avail:[5,11],available_slot:11,awaiting_ack:15,back:[9,11,15],backend_addr:11,backward:15,base:[5,8,13,15],basi:9,becaus:[11,15],becom:13,been:[3,11,15],befor:[3,8,9],begin:[11,13,15],being:8,belong:11,below:9,best:3,between:9,block:13,bool:[2,3,7,10,12,15],boot:20,both:[8,9],box:13,broadcast:9,broker:[2,7,9,14,15],broker_addr:[2,7],buffer:11,build:[11,12],built:9,bulid:10,calabl:[2,3],calcul:20,call:[3,8,11,15],callabl:[2,3,5,7,10],callable_nam:5,callablefrompatherror:5,callback:15,can:[1,2,3,9,11,14,15,16,18],captur:15,care:16,caus:16,certain:15,chang:9,charact:17,check:[7,10,12,15],check_worker_health:7,choos:13,circuit:11,class_arg:[2,3,7],class_kwarg:[2,3,7],classmethod:11,clean:9,clean_up_dead_schedul:11,clean_up_dead_work:11,clear:11,cli:11,client:[0,6,11],clock:20,close:[15,20],code:[4,6,15],collect:15,colon:3,com:2,come:[3,11],comma:[9,13],command:[3,7,9,11,15,18],compat:15,complet:9,compon:9,concurr:13,concurrent_job:7,conf:[6,14],config:13,configur:[3,11,19],connction:[10,12],connect:[5,7,9,10,11,12,14,15,18],connectionerror:5,consist:9,construct:5,contact:5,contain:[1,9,11,15,17],context:[10,12],contribut:6,control:13,contruct:15,convers:9,convert:17,convienc:[8,15],core:13,count:[7,9,11,20],counter:[11,15],cpu:13,creat:[2,11,12,17],cron:[2,3],csv:9,current:[10,11,12,15],custom:11,cycl:13,data:[11,18],data_process:13,dead:7,deal:17,dealer:12,death:15,debounc:3,debounce_deferred_job:3,debounce_sec:3,debug:9,decor:2,decsend:11,def:2,defeat:9,defer:[2,3],defer_job:3,defin:[2,3,7,9,10,12,15,20],deliv:9,denot:[2,3],depth:11,dequ:15,describ:9,descript:9,detail:9,detect:9,determin:9,devic:[0,8,15,17,18],dialog:9,dict:[2,3,7,8],dictionari:[8,9,11],die:11,died:15,differ:4,directli:[8,15],disabl:3,disconnect:[10,11],distribut:9,document:9,doe:15,doesn:8,don:[7,9],dot:3,down:[13,20],dst:20,duplic:11,dure:12,each:11,effici:13,effort:3,either:[9,15],elaps:9,element:[11,15],els:[4,9],email:[2,9,13],emit:2,empti:[9,18],emq:11,emq_broker_addr:[2,14],emqdequ:15,emqp:[15,18],emqpservic:15,enabl:[2,3,15],encod:16,encount:[3,5],end:[3,15],ensur:[2,3,7,9,15],entri:11,environ:[2,6],equal:13,error:[2,3,5,13,15,16],etc:[11,13],evalu:3,even:9,event:[8,15],eventmq:[1,2,3,5,7,8,10,11,12,15,16,17,18,19,20],eventmqerror:5,everi:[2,3,7],everyth:16,exampl:[11,13,15,20],excecut:11,except:[0,3,4,6,9,10,12],exectu:11,execut:[2,3,9,13,20],executed_funct:11,exist:[5,7],explicitli:[13,15],expos:7,extend:15,extra:9,fail:[3,5,9],failur:3,fair:9,fals:[2,3,9,10,12,15],featur:16,few:4,field:9,file:13,find:15,finish:[9,11],first:[9,11,15,18],fit:9,flag:[3,8],follow:[3,9,15],foobar:2,form:15,format:[2,3,7,9,11,18],forward:[11,15,18],found:[5,11,13],foundat:9,frame:[11,15,18],free:9,from:[2,5,8,9,10,11,12,15,20],frontend_addr:11,fuction:3,full:15,func:[2,3,7,15],function_nam:11,fwd_emqp_router_messag:18,gener:[7,8,9,10,12,18],generate_device_nam:16,generate_msgid:18,get:11,get_available_work:11,get_statu:11,give:3,given:[2,11],global:19,gmail:2,gnu:9,good:15,group:13,guarante:[2,3,9],guarente:3,hand:17,handl:[7,9,11,15],handler:7,happen:[3,8,11,12],hard:15,has:[9,11,15],hasn:11,have:[3,13,15,18],haven:11,header:[2,3],heartbeat:[7,11,15,20],heartbeat_timeout:11,heartbeati:15,heartbeatmixin:15,heavi:9,help:13,helper:[0,1,15],here:[9,11],highest:13,hit:15,hope:9,how:[3,8],html:9,http:9,ident:[9,16],identifi:11,ids:18,ietf:9,ignor:[9,15],immedi:[3,9],immediatli:3,implement:[9,15],impli:9,import_set:19,includ:[3,9,15],index:[6,11],indexerror:11,indic:7,indiviud:13,infinit:3,inform:[2,3,7,9,11,15],inherit:5,ini:[13,19],initi:[3,15],insert:[9,15],instal:4,instanc:7,instanti:[3,7],instead:9,integ:11,intens:13,interest:17,intern:5,interpret:9,interv:[2,3,9,20],interval_sec:[2,3,20],intervalit:20,invalidmessageerror:[5,11],is_dead:15,is_empti:15,is_ful:15,is_heartbeat_en:15,is_pful:15,isn:[11,15],issu:[4,6,9],item:15,iter:[8,11,15],iterat:15,itself:11,job:[0,1,3,5,6,9,11,14,15],job_lat:11,job_schedul:3,jobmanag:[0,6,9,11,15],jobmanager_main:7,json:[2,3,13],keep:[7,11],kei:[8,9,11],kick:[7,11],kill:[3,9],know:[3,7,11],kwarg2:3,kwarg:[2,3,7,8,10,11,12,15],larg:13,larger:13,largest:11,last:[3,11,15],last_recv_heartbeat:11,lataneci:11,latenc:11,later:9,least:[9,15],leav:[9,13],left:15,length:[15,17],lesser:9,let:9,like:[7,15,17],limit:15,list:[2,3,5,7,9,11,13,15,17,20],listen:[7,10,11,12,13,15],load:13,local:13,locat:3,log:[3,7,11],logic:[7,11],login:2,longer:[5,13],look:15,loop:[8,11,15],lot:13,lower:11,mai:[9,11,15],main:7,make:17,malform:5,manag:[0,5,6,11,14,15],mani:[3,9,12],manual:9,master:9,match:15,mean:3,measur:11,member:11,memebership:11,merchant:9,mess:20,messag:[0,1,2,5,7,9,10,11,12,15,17],message_bodi:18,message_id:18,messageerror:5,met:15,meta:[11,18],method:[3,7,8,11,15],mime:2,mimetext:2,minut:[2,3],model:13,modifi:9,modul:[1,6,7,17],monoton:[11,15,20],more:[2,3,9,15,17],most:15,msg:[2,7,9,11,15,18],msgid:[7,11,15],multipart:[9,15],multiprocess:[7,13],must:[2,3,9,13,15],name:[2,3,7,9,10,11,12,13,19],necessari:7,need:[11,12],network:5,never:[9,20],next:[8,11,13,20],noavailableworkerslotserror:[5,11],nohast:9,none:[2,3,7,10,11,12,15,16,18],noop:7,normal:15,note:[7,10,12],notifi:15,now:15,number:[3,11,13,20],numer:20,obj:11,object:[2,8,15,17,20],occur:15,off:[7,11],on_ack:15,on_command:[11,15],on_disconnect:11,on_emqp_command:15,on_ful:15,on_heartbeat:[7,11],on_inform:11,on_readi:11,on_recv:10,on_repli:11,on_request:[7,11],on_schedul:15,onc:9,one:[1,2,3,10,11,12],onlin:[11,15],option:[3,7,9,10,12,18],order:11,org:9,orient:9,origin:9,original_msg:11,other:[3,9,13],otherwis:[7,10,12,13,15],out:[7,9,15],outgo:[7,15],own:15,page:6,param:3,paramet:[2,3,7,8,10,11,12,15,16,17,18,19,20],pars:[11,15,18],parse_messag:18,parse_router_messag:18,part:[9,18],particular:[2,9,12],pass:[2,3,9,10,15],password:2,path:[2,3,5,7],payload:18,peek:15,peekleft:15,peer:[5,9,15],peergoneawayerror:[5,11],pend:9,per:11,period:2,pfull:15,pictur:9,placehold:[7,11],point:13,poll:8,poller:[0,6,15],pollin:8,pollout:8,pool:[7,9,11],pop:[11,15],popleft:15,port:11,portion:7,possibl:4,practic:15,prefix:[16,18],prepar:11,prepend:9,pretti:9,priorit:11,prioriti:11,prioritiess:11,prioritize_queue_list:11,problem:5,process:[7,9,11,12,13,15],process_client_messag:11,process_messag:[7,15],process_worker_messag:11,programm:15,proper:15,properti:[10,12,15],protocol:[4,6,15],protocol_vers:15,provid:[2,11,15],pub:9,purpos:9,push_notif:15,py2:20,py3:20,python3:16,python:15,queue:[2,3,5,7,9,11,15],queue_nam:11,quit:2,rais:[2,3,5,10,11,12,15,18],random:[17,18],random_charact:17,raw:15,readi:[7,9,10,11,12,13,15],rebind:11,rebuild:12,receiv:[0,3,4,6,9,11,12,15],received_disconnect:11,recent:[9,11],recipi:[2,7,11,15,18],recipient_id:18,recommend:[9,13,15],reconnect:12,recreat:7,recurs:[11,17],recus:11,recv:15,recv_multipart:15,redistribut:9,refer:[2,7,9,15,20],regist:[7,8,11],regular:9,reject:15,rel:4,reliabl:9,reload:11,remain:8,remot:15,remov:[9,11,15],reopen:15,rep:10,repli:[2,3,7,9,11,18],reply_request:3,repres:20,req:12,request:[1,3,7,9,11,15],request_queu:7,requeue_work:11,requir:9,reset:[11,15],reset_heartbeat_count:[11,15],resourc:[7,9],respond:[9,11,15],respons:[7,10,11,12],restart:[9,12],retri:[3,9,11],retry_count:3,rfc2119:9,rfc:9,right:15,robin:9,roughli:12,round:9,rout:[9,11],router:[0,6,7,10,14,15,18],router_main:11,run:[2,3,7,9,11,13,15],safe:13,sake:20,same:12,schedul:[2,3,11,14,15],scheduler_id:11,scheduler_queu:11,scheduler_zmq_id:11,search:6,sec:3,second:[3,9,20],seconds_until:20,section:19,see:[2,3,8,9,11,15],self:[7,11,12,15],semi:[],send:[2,3,5,7,9,11,12,15,18],send_ack:11,send_email:2,send_emqp_messag:18,send_emqp_router_messag:18,send_heartbeat:[11,15],send_inform:15,send_multipart:15,send_readi:7,send_repli:7,send_request:3,send_schedule_request:3,send_schedulers_heartbeat:11,send_workers_heartbeat:11,sender:[0,6,11],sender_id:18,sendmail:2,sent:[2,3,9,11,13,15],seper:[3,9,13],serial:11,serializ:[2,3],serv:9,server:[6,7,9,14],servic:[5,9,15],service_typ:15,set:[0,2,6,7,8,9,11,12,14,15,16,17],setup:7,shall:9,should:[2,3,5,8,9,10,11,12,13,14,15,18],shown:9,sighup:11,sighup_handl:11,signal:7,signum:11,similar:13,simpl:[11,17],sinc:20,singl:[9,15],size:15,skip:[12,15],skip_sign:7,skip_zmqstream:12,slot:11,slow:13,smaller:13,smtp:2,smtplib:2,socket:[3,7,8,9,10,11,12,15,16,18],softwar:9,some:[3,7,13,15,17,18],someon:9,someth:[3,12,13,15,20],somewher:4,sourc:[4,6],spawn:7,specif:[4,6],specifi:[9,15,17],standard:13,start:[7,10,11,12,13,15,20],start_valu:20,state:[11,15],statu:9,still:[2,11,13],stop:[2,9],store:11,str:[2,3,7,10,11,12,15,16,17,18,19],string:[2,3,9,10,11,12,15,16,18],structur:5,style:13,sub:9,subclass:5,subcmd:7,subcommand:[3,7],subject:[2,9],subset:9,subtract:20,success:9,successfulli:15,support:15,synchron:2,system:[4,11],tabl:9,take:[11,12,15,16,18],task:[2,3,7],tcp:11,tell:7,term:9,test:[2,7],text:2,thei:[3,15],them:[7,10],thi:[1,2,3,5,7,8,9,10,11,12,13,15,16,17,18,20],thier:13,thing:[3,7,12,13,15,17,18],thread:13,threshold:15,through:[9,11],thrown:13,time:[0,3,9,11,13,15,17],timeout:[3,8,9],timestamp:[9,11,20],timeutil:[0,15,17],tip:4,tool:9,topic:9,trace:9,track:[7,11,15],tri:3,tune:13,tupl:[7,8,11,15,17,18],tuplifi:17,type:[2,3,9,10,11,12,15,17,18],type_:15,typecast:8,typeerror:[2,3,10],unabl:11,unbind:[10,12],undefin:[2,8],under:9,unicod:16,uniqu:[7,9,11],unit:[2,7],unix:9,unknownqueueerror:[5,11],unless:[7,10,12],unprioritized_iter:11,unregist:8,unschedul:[2,3,9],until:[13,20],untouch:[11,18],unus:9,updat:15,upon:9,upstream:7,usag:[2,20],use:[2,3,4,7,9,10,11,12,14,15,18],used:[1,2,3,9,10,11,12,15,16,18],useful:[2,9,12,20],uses:[7,13],using:[2,3,8,13,14,15,20],usual:15,util:[0,6,20],utilit:[0,17],utlitii:15,uuid:[7,10,11,12],valid:[9,13],valu:[2,3,8,9,11,15,17,18,20],valueerror:15,variabl:[2,6,15],version:[4,9,15],via:[3,20],wait:[3,8,13],waiting_messag:11,walk:7,want:[2,9,13,15],warn:[2,11],warranti:9,weak:[2,15,20],web:9,weight:[9,13,15],well:9,when:[1,2,3,4,5,7,9,10,11,12,15,16],where:[3,9,11,15,20],which:[3,9,11,15,16],who:[1,11],wish:18,without:[9,12],word:9,work:[4,7,15],worker:[2,3,5,7,11,13,15],worker_id:11,worri:9,would:[13,15,20],wrap:3,wrapper:3,you:[2,4,9,11,12,13,15,18],your:[3,9,13,15],zcontext:[10,12],zeromq:9,zmq:[8,9,10,11,12,15,16,18],zmqreceivemixin:15,zmqsendmixin:15,zmqstream:12,zsocket:[10,12]},titles:["API Documentation","client – Client Utilities","jobs – Client Job Helpers","messages – Client Messaging","Contributing to EventMQ","exceptions – Exceptions","EventMQ Documentation","jobmanager – Job Manager","poller – Poller","EventMQ Protocol Specification","receiver – Receiver","router – Router","sender – Sender","Server Settings (eventmq.conf)","Using EventMQ","classes – Utility Classes","devices – Device Utilities","utils – Utilities","messages – Message Utilities","settings – Settings Utilities","timeutils – Time Utilites"],titleterms:{"class":15,Using:14,address:9,api:0,architectur:9,client:[1,2,3,9,14],concurrent_job:13,conf:13,contribut:4,devic:16,disconnect:9,document:[0,6],emqp:9,environ:14,eventmq:[4,6,9,13,14],except:5,frame:9,global:9,goal:9,header:9,heartbeat:9,helper:2,indic:6,job:[2,7,13],jobmanag:7,kbai:9,languag:9,licens:9,manag:[7,13],messag:[3,18],poller:8,protocol:9,publish:9,queue:13,receiv:10,router:[9,11,13],schedul:[9,13],sender:12,server:13,set:[13,19],specif:9,tabl:6,time:20,timeutil:20,topolog:9,util:[1,15,16,17,18,19],utilit:20,variabl:14,worker:9}}) \ No newline at end of file +Search.setIndex({docnames:["api","client","client/jobs","client/messages","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","settings_file","using","utils/classes","utils/devices","utils/index","utils/messages","utils/settings","utils/timeutils"],envversion:50,filenames:["api.rst","client.rst","client/jobs.rst","client/messages.rst","contributing.rst","exceptions.rst","index.rst","jobmanager.rst","poller.rst","protocol.rst","receiver.rst","router.rst","sender.rst","settings_file.rst","using.rst","utils/classes.rst","utils/devices.rst","utils/index.rst","utils/messages.rst","utils/settings.rst","utils/timeutils.rst"],objects:{"eventmq.client":{jobs:[2,0,0,"-"],messages:[3,0,0,"-"]},"eventmq.client.jobs":{Job:[2,1,1,""],job:[2,4,1,""],schedule:[2,4,1,""],unschedule:[2,4,1,""]},"eventmq.client.jobs.Job":{__init__:[2,2,1,""],__weakref__:[2,3,1,""]},"eventmq.client.messages":{defer_job:[3,4,1,""],schedule:[3,4,1,""],send_request:[3,4,1,""],send_schedule_request:[3,4,1,""]},"eventmq.exceptions":{CallableFromPathError:[5,5,1,""],ConnectionError:[5,5,1,""],EventMQError:[5,5,1,""],InvalidMessageError:[5,5,1,""],MessageError:[5,5,1,""],NoAvailableWorkerSlotsError:[5,5,1,""],PeerGoneAwayError:[5,5,1,""],UnknownQueueError:[5,5,1,""]},"eventmq.jobmanager":{JobManager:[7,1,1,""]},"eventmq.jobmanager.JobManager":{__init__:[7,2,1,""],check_worker_health:[7,2,1,""],concurrent_jobs:[7,3,1,""],jobmanager_main:[7,2,1,""],name:[7,3,1,""],on_heartbeat:[7,2,1,""],on_request:[7,2,1,""],outgoing:[7,3,1,""],queues:[7,3,1,""],request_queue:[7,3,1,""],send_ready:[7,2,1,""],send_reply:[7,2,1,""]},"eventmq.poller":{Poller:[8,1,1,""]},"eventmq.poller.Poller":{__init__:[8,2,1,""],poll:[8,2,1,""],register:[8,2,1,""],unregister:[8,2,1,""]},"eventmq.receiver":{Receiver:[10,1,1,""]},"eventmq.receiver.Receiver":{__init__:[10,2,1,""],connect:[10,2,1,""],listen:[10,2,1,""],name:[10,3,1,""],ready:[10,3,1,""],unbind:[10,2,1,""],zcontext:[10,3,1,""],zsocket:[10,3,1,""]},"eventmq.router":{Router:[11,1,1,""]},"eventmq.router.Router":{add_scheduler:[11,2,1,""],add_worker:[11,2,1,""],clean_up_dead_schedulers:[11,2,1,""],clean_up_dead_workers:[11,2,1,""],executed_functions:[11,3,1,""],get_available_worker:[11,2,1,""],get_status:[11,2,1,""],job_latencies:[11,3,1,""],on_disconnect:[11,2,1,""],on_heartbeat:[11,2,1,""],on_inform:[11,2,1,""],on_ready:[11,2,1,""],on_reply:[11,2,1,""],on_request:[11,2,1,""],prioritize_queue_list:[11,6,1,""],process_client_message:[11,2,1,""],process_worker_message:[11,2,1,""],queues:[11,3,1,""],received_disconnect:[11,3,1,""],requeue_worker:[11,2,1,""],reset_heartbeat_counters:[11,2,1,""],router_main:[11,2,1,""],scheduler_queue:[11,3,1,""],schedulers:[11,3,1,""],send_ack:[11,2,1,""],send_heartbeat:[11,2,1,""],send_schedulers_heartbeats:[11,2,1,""],send_workers_heartbeats:[11,2,1,""],sighup_handler:[11,2,1,""],start:[11,2,1,""],waiting_messages:[11,3,1,""],workers:[11,3,1,""]},"eventmq.sender":{Sender:[12,1,1,""]},"eventmq.sender.Sender":{__init__:[12,2,1,""],connect:[12,2,1,""],listen:[12,2,1,""],name:[12,3,1,""],ready:[12,3,1,""],rebuild:[12,2,1,""],unbind:[12,2,1,""],zcontext:[12,3,1,""],zsocket:[12,3,1,""]},"eventmq.utils":{classes:[15,0,0,"-"],devices:[16,0,0,"-"],messages:[18,0,0,"-"],random_characters:[17,4,1,""],settings:[19,0,0,"-"],timeutils:[20,0,0,"-"],tuplify:[17,4,1,""]},"eventmq.utils.classes":{EMQPService:[15,1,1,""],EMQdeque:[15,1,1,""],HeartbeatMixin:[15,1,1,""],ZMQReceiveMixin:[15,1,1,""],ZMQSendMixin:[15,1,1,""]},"eventmq.utils.classes.EMQPService":{__weakref__:[15,3,1,""],is_heartbeat_enabled:[15,3,1,""],on_ack:[15,2,1,""],process_message:[15,2,1,""],reset:[15,2,1,""],send_inform:[15,2,1,""],start:[15,2,1,""]},"eventmq.utils.classes.EMQdeque":{__init__:[15,2,1,""],__weakref__:[15,3,1,""],append:[15,2,1,""],appendleft:[15,2,1,""],extend:[15,2,1,""],is_empty:[15,2,1,""],is_full:[15,2,1,""],is_pfull:[15,2,1,""],peek:[15,2,1,""],peekleft:[15,2,1,""],pop:[15,2,1,""],popleft:[15,2,1,""],remove:[15,2,1,""]},"eventmq.utils.classes.HeartbeatMixin":{__init__:[15,2,1,""],__weakref__:[15,3,1,""],is_dead:[15,2,1,""],reset_heartbeat_counters:[15,2,1,""],send_heartbeat:[15,2,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{__weakref__:[15,3,1,""],recv:[15,2,1,""],recv_multipart:[15,2,1,""]},"eventmq.utils.classes.ZMQSendMixin":{__weakref__:[15,3,1,""],send:[15,2,1,""],send_multipart:[15,2,1,""]},"eventmq.utils.devices":{generate_device_name:[16,4,1,""]},"eventmq.utils.messages":{fwd_emqp_router_message:[18,4,1,""],generate_msgid:[18,4,1,""],parse_message:[18,4,1,""],parse_router_message:[18,4,1,""],send_emqp_message:[18,4,1,""],send_emqp_router_message:[18,4,1,""]},"eventmq.utils.settings":{import_settings:[19,4,1,""]},"eventmq.utils.timeutils":{IntervalIter:[20,1,1,""],monotonic:[20,4,1,""],seconds_until:[20,4,1,""],timestamp:[20,4,1,""]},"eventmq.utils.timeutils.IntervalIter":{__init__:[20,2,1,""],__weakref__:[20,3,1,""]},eventmq:{client:[1,0,0,"-"],exceptions:[5,0,0,"-"],jobmanager:[7,0,0,"-"],poller:[8,0,0,"-"],receiver:[10,0,0,"-"],router:[11,0,0,"-"],sender:[12,0,0,"-"],utils:[17,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","function","Python function"],"5":["py","exception","Python exception"],"6":["py","classmethod","Python class method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:function","5":"py:exception","6":"py:classmethod"},terms:{"0mq":[9,15],"5min":20,"abstract":9,"boolean":15,"case":[9,15,20],"class":[0,2,3,7,8,10,11,12,17,20],"default":[2,3,7,9,10,11,12,13,15],"float":[15,20],"function":[2,3,11],"import":[2,3,4,7,11,13,19],"int":[2,3,8,9,11,15,20],"long":[8,15],"new":[11,15],"public":9,"return":[2,3,4,8,10,11,12,15,16,17,18,20],"short":11,"true":[2,9,10,11,12,15],"while":9,FOR:9,For:15,NOT:9,The:[2,3,7,8,9,10,11,12,13,14,15,18],There:11,These:5,Use:4,Used:[3,11],Useful:[7,15,18],Using:6,With:13,__init__:[2,7,8,10,12,15,20],__weakref__:[2,15,20],_empty_:9,_headers_:9,_msg_:9,_msgid_:9,_queue_name_:9,_queues_:9,_recipient_id:15,_topic_name_:9,_unix_ts_:9,abl:[11,13],about:[7,9,11],absolut:4,accept:[9,13,15],account:[11,18],ack:[7,9,11],ackd_msgid:15,acknowledg:[7,9,11],across:9,act:[1,9],actual:[7,11],add:11,add_schedul:11,add_work:11,added:15,adding:15,addr:[10,12,15],address:[2,7,10,11,12,13,14],administrative_addr:11,after:[9,13],agre:9,all:[2,3,5,7,9,10,11,12,15],allow:9,alpha:9,alreadi:11,also:15,alwai:3,amount:13,and_data:18,ani:[3,7,9,11,13,14,17],announc:11,anoth:[7,11,13],anyth:13,api:[6,9],app:[2,15],appear:8,append:15,appendleft:15,appened:11,appli:19,applic:[2,3,9,13,14],arg2:3,arg3:3,arg:[2,3,7,8,10,11,12,15],argument:15,arithmet:20,arrai:9,as_str:2,ascii:16,assign:13,assum:20,async:2,attempt:[5,11,13],attr:8,automat:15,avail:[5,11],available_slot:11,awaiting_ack:15,back:[9,11,15],backend_addr:11,backward:15,base:[5,8,13,15],basi:9,becaus:[11,15],becom:13,been:[3,11,15],befor:[3,8,9],begin:[11,13,15],being:8,belong:11,below:9,best:3,between:9,block:13,bool:[2,3,7,10,12,15],boot:20,both:[8,9],box:13,broadcast:9,broker:[2,7,9,13,14,15],broker_addr:[2,7],buffer:11,build:[11,12],built:9,bulid:10,calabl:[2,3],calcul:20,call:[8,11,15],callabl:[2,3,5,7,10,13],callable_nam:5,callablefrompatherror:5,callback:15,can:[1,2,3,9,11,14,15,16,18],captur:15,care:16,caus:16,certain:15,chang:9,charact:17,check:[7,10,12,15],check_worker_health:7,choos:13,circuit:11,class_arg:[2,3,7],class_kwarg:[2,3,7],classmethod:11,clean:9,clean_up_dead_schedul:11,clean_up_dead_work:11,clear:11,cli:11,client:[0,6,11,13],clock:20,close:[15,20],code:[4,6,15],collect:15,colon:3,com:2,come:[3,11],comma:[9,13],command:[3,7,9,11,15,18],compat:15,complet:9,compon:9,concurr:13,concurrent_job:7,conf:[6,14],config:13,configur:[3,11,19],connction:[10,12],connect:[5,7,9,10,11,12,13,14,15,18],connectionerror:5,consist:9,construct:5,contact:5,contain:[1,9,11,13,15,17],content:13,context:[10,12],contribut:6,control:13,contruct:15,convers:9,convert:17,convienc:[8,15],core:13,count:[7,9,11,20],counter:[11,15],cpu:13,creat:[2,11,12,17],cron:[2,3],csv:9,current:[10,11,12,13,15],custom:11,cycl:13,data:[11,18],data_process:13,databas:13,dead:7,deal:17,dealer:12,death:15,debounc:3,debounce_deferred_job:3,debounce_sec:3,debug:[9,13],decor:2,decsend:11,def:2,defeat:9,defer:[2,3],defer_job:3,defin:[2,3,7,9,10,12,15,20],deliv:9,denot:[2,3],depth:11,dequ:15,describ:9,descript:9,detail:9,detect:9,determin:9,devic:[0,8,15,17,18],dialog:9,dict:[2,3,7,8],dictionari:[8,9,11],die:11,died:15,differ:4,directli:[8,15],disabl:3,disconnect:[10,11],disk:13,distribut:9,document:9,doe:15,doesn:8,don:[7,9],dot:3,down:[13,20],dst:20,duplic:11,dure:12,each:11,effici:13,effort:3,either:[9,15],elaps:9,element:[11,15],els:[4,9],email:[2,9,13],emit:2,empti:[9,18],emq:11,emq_broker_addr:[2,14],emqdequ:15,emqp:[15,18],emqpservic:15,enabl:[2,3,13,15],encod:16,encount:[3,5],end:[3,15],ensur:[2,3,7,9,15],entri:11,environ:[2,6],equal:13,error:[2,3,5,13,15,16],etc:[11,13],evalu:3,even:9,event:[8,15],eventmq:[1,2,3,5,7,8,10,11,12,15,16,17,18,19,20],eventmqerror:5,everi:[2,3,7],everyth:16,exampl:[11,13,15,20],excecut:11,except:[0,3,4,6,9,10,12],exectu:11,execut:[2,3,9,13,20],executed_funct:11,exist:[5,7],exit:13,expect:13,explicitli:[13,15],expos:7,extend:15,extra:9,fail:[3,5,9],failur:3,fair:9,fals:[2,3,9,10,12,13,15],featur:16,few:4,field:9,file:13,find:15,finish:[9,11],first:[9,11,15,18],fit:9,flag:[3,8],follow:[3,9,15],foobar:2,form:15,format:[2,3,7,9,11,18],forward:[11,15,18],found:[5,11,13],foundat:9,frame:[11,15,18],free:9,from:[2,5,8,9,10,11,12,13,15,20],frontend_addr:11,fuction:3,full:15,func:[2,3,7,15],function_nam:11,fwd_emqp_router_messag:18,gener:[7,8,9,10,12,18],generate_device_nam:16,generate_msgid:18,get:11,get_available_work:11,get_statu:11,give:3,given:[2,11],global:[14,19],gmail:2,gnu:9,good:15,gracefulli:13,group:13,guarante:[2,3,9],guarente:3,hand:17,handl:[7,9,11,15],handler:7,happen:[3,8,11,12],hard:15,has:[9,11,15],hasn:11,have:[3,13,15,18],haven:11,header:[2,3],heartbeat:[7,11,15,20],heartbeat_timeout:11,heartbeati:15,heartbeatmixin:15,heavi:9,help:13,helper:[0,1,15],here:[9,11],highest:13,hit:15,hope:9,hostnam:13,how:[3,8],html:9,http:9,ident:[9,16],identifi:11,ids:18,ietf:9,ignor:[9,15],immedi:[3,9],immediatli:3,implement:[9,15],impli:9,import_set:19,includ:[3,9,15],index:[6,11],indexerror:11,indic:7,indiviud:13,infinit:3,inform:[2,3,7,9,11,15],inherit:5,ini:[13,19],initi:[3,15],insert:[9,15],instal:4,instanc:7,instanti:[3,7],instead:9,integ:11,intens:13,interest:17,intern:5,interpret:9,interv:[2,3,9,20],interval_sec:[2,3,20],intervalit:20,invalidmessageerror:[5,11],is_dead:15,is_empti:15,is_ful:15,is_heartbeat_en:15,is_pful:15,isn:[11,15],issu:[4,6,9],item:15,iter:[8,11,15],iterat:15,itself:11,job:[0,1,3,5,6,9,11,14,15],job_lat:11,job_schedul:3,jobmanag:[0,6,9,11,15],jobmanager_main:7,json:[2,3,13],keep:[7,11],kei:[8,9,11],kick:[7,11],kill:[3,9],know:[3,7,11],kwarg2:3,kwarg:[2,3,7,8,10,11,12,15],larg:13,larger:13,largest:11,last:[3,11,15],last_recv_heartbeat:11,lataneci:11,latenc:11,later:9,least:[9,15],leav:[9,13],left:15,length:[15,17],lesser:9,let:9,level:13,like:[7,15,17],limit:15,list:[2,3,5,7,9,11,13,15,17,20],listen:[7,10,11,12,13,15],load:13,local:13,localhost:13,locat:3,log:[3,7,11],logic:[7,11],login:2,longer:[5,13],look:15,loop:[8,11,15],lot:13,lower:11,mai:[9,11,15],main:7,make:17,malform:5,manag:[0,5,6,11,14,15],mani:[3,9,12],manual:9,master:9,match:15,mean:3,measur:11,member:11,memebership:11,memori:13,merchant:9,mess:20,messag:[0,1,2,5,7,9,10,11,12,15,17],message_bodi:18,message_id:18,messageerror:5,met:15,meta:[11,18],method:[3,7,8,11,15],mime:2,mimetext:2,minut:[2,3],model:13,modifi:9,modul:[1,6,7,17],monoton:[11,15,20],more:[2,3,9,15,17],most:[13,15],msg:[2,7,9,11,15,18],msgid:[7,11,15],multipart:[9,15],multiprocess:[7,13],multiprocesswork:13,must:[2,3,9,13,15],name:[2,3,7,9,10,11,12,13,19],necessari:7,need:[11,12],network:5,never:[9,20],next:[8,11,13,20],noavailableworkerslotserror:[5,11],nohast:9,none:[2,3,7,10,11,12,15,16,18],noop:7,normal:15,note:[7,10,12],notifi:15,now:15,number:[3,11,13,20],numer:20,obj:11,object:[2,8,15,17,20],occur:15,off:[7,11],on_ack:15,on_command:[11,15],on_disconnect:11,on_emqp_command:15,on_ful:15,on_heartbeat:[7,11],on_inform:11,on_readi:11,on_recv:10,on_repli:11,on_request:[7,11],on_schedul:15,onc:9,one:[1,2,3,10,11,12],onli:13,onlin:[11,15],oper:13,option:[3,7,9,10,12,18],order:11,org:9,orient:9,origin:9,original_msg:11,other:[3,9,13],otherwis:[7,10,12,13,15],out:[7,9,15],outgo:[7,15],own:15,page:6,param:3,paramet:[2,3,7,8,10,11,12,15,16,17,18,19,20],pars:[11,15,18],parse_messag:18,parse_router_messag:18,part:[9,18],particular:[2,9,12],pass:[2,3,9,10,15],password:[2,13],path:[2,3,5,7,13],payload:18,peek:15,peekleft:15,peer:[5,9,15],peergoneawayerror:[5,11],pend:9,per:11,period:2,persist:13,pfull:15,pictur:9,placehold:[7,11],point:13,poll:8,poller:[0,6,15],pollin:8,pollout:8,pool:[7,9,11],pop:[11,15],popleft:15,port:[11,13],portion:7,possibl:4,practic:15,prefix:[16,18],prepar:11,prepend:9,pretti:9,priorit:11,prioriti:11,prioritiess:11,prioritize_queue_list:11,problem:5,process:[7,9,11,12,13,15],process_client_messag:11,process_messag:[7,15],process_worker_messag:11,programm:15,proper:15,properti:[10,12,15],protocol:[4,6,15],protocol_vers:15,provid:[2,11,15],pub:9,pull:13,purpos:9,push_notif:15,py2:20,py3:20,python3:16,python:15,queue:[2,3,5,7,9,11,15],queue_nam:11,quit:2,rais:[2,3,5,10,11,12,15,18],random:[17,18],random_charact:17,raw:15,readi:[7,9,10,11,12,13,15],rebind:11,rebuild:12,receiv:[0,3,4,6,9,11,12,15],received_disconnect:11,recent:[9,11],recipi:[2,7,11,15,18],recipient_id:18,recommend:[9,13,15],reconnect:12,recreat:7,recurs:[11,17],recus:11,recv:15,recv_multipart:15,redi:13,redistribut:9,refer:[2,7,9,15,20],regist:[7,8,11],regular:9,reject:15,rel:4,reliabl:9,reload:11,remain:8,remot:15,remov:[9,11,15],reopen:15,rep:10,replac:13,repli:[2,3,7,9,11,18],reply_request:3,repres:20,req:12,request:[1,3,7,9,11,15],request_queu:7,requeue_work:11,requir:9,reset:[11,15],reset_heartbeat_count:[11,15],resourc:[7,9],respond:[9,11,15],respons:[7,10,11,12],restart:[9,12],retri:[3,9,11],retry_count:3,rfc2119:9,rfc:9,right:15,robin:9,roughli:12,round:9,rout:[9,11],router:[0,6,7,10,14,15,18],router_main:11,run:[2,3,7,9,11,13,15],safe:13,sake:20,same:12,save:13,schedul:[2,3,11,14,15],scheduler_id:11,scheduler_queu:11,scheduler_zmq_id:11,search:6,sec:3,second:[3,9,20],seconds_until:20,section:19,see:[2,3,8,9,11,15],self:[7,11,12,15],semi:[],send:[2,3,5,7,9,11,12,15,18],send_ack:11,send_email:2,send_emqp_messag:18,send_emqp_router_messag:18,send_heartbeat:[11,15],send_inform:15,send_multipart:15,send_readi:7,send_repli:7,send_request:3,send_schedule_request:3,send_schedulers_heartbeat:11,send_workers_heartbeat:11,sender:[0,6,11],sender_id:18,sendmail:2,sent:[2,3,9,11,13,15],seper:[3,9,13],serial:11,serializ:[2,3],serv:9,server:[6,7,9,14],servic:[5,9,15],service_typ:15,set:[0,2,6,7,8,9,11,12,14,15,16,17],setup:7,shall:9,should:[2,3,5,8,9,10,11,12,13,14,15,18],shown:9,sighup:11,sighup_handl:11,signal:7,signifi:13,signum:11,similar:13,simpl:[11,17],sinc:20,singl:[9,15],size:15,skip:[12,15],skip_sign:7,skip_zmqstream:12,slot:11,slow:13,smaller:13,smtp:2,smtplib:2,socket:[3,7,8,9,10,11,12,15,16,18],softwar:9,some:[3,7,13,15,17,18],someon:9,someth:[3,12,13,15,20],somewher:4,sourc:[4,6],spawn:[7,13],specif:[4,6],specifi:[9,15,17],standard:13,start:[7,10,11,12,13,15,20],start_valu:20,state:[11,13,15],statement:13,statu:9,still:[2,11,13],stop:[2,9],store:11,str:[2,3,7,10,11,12,15,16,17,18,19],string:[2,3,9,10,11,12,13,15,16,18],structur:5,style:13,sub:9,subclass:5,subcmd:7,subcommand:[3,7],subject:[2,9],subset:9,subtract:20,success:9,successfulli:15,support:[13,15],synchron:2,system:[4,11],tabl:9,take:[11,12,15,16,18],task:[2,3,7,13],tcp:[11,13],tell:7,term:9,test:[2,7],text:2,thei:[3,15],them:[7,10],thi:[1,2,3,5,7,8,9,10,11,12,13,15,16,17,18,20],thier:[],thing:[3,7,12,13,15,17,18],thread:13,threshold:15,through:[9,11],thrown:13,time:[0,3,9,11,13,15,17],timeout:[3,8,9],timestamp:[9,11,20],timeutil:[0,15,17],tip:4,tool:9,topic:9,trace:9,track:[7,11,15],tri:3,tune:13,tupl:[7,8,11,15,17,18],tuplifi:17,type:[2,3,9,10,11,12,13,15,17,18],type_:15,typecast:8,typeerror:[2,3,10],unabl:11,unbind:[10,12],undefin:[2,8],under:9,unicod:16,uniqu:[7,9,11],unit:[2,7],unix:9,unknownqueueerror:[5,11],unless:[7,10,12],unprioritized_iter:11,unregist:8,unschedul:[2,3,9],until:[13,20],untouch:[11,18],unus:9,updat:15,upon:9,upstream:7,usag:[2,20],use:[2,3,4,7,9,10,11,12,13,14,15,18],used:[1,2,3,9,10,11,12,13,15,16,18],useful:[2,9,12,13,20],uses:[7,13],using:[2,3,8,13,14,15,20],usual:15,util:[0,6,20],utilit:[0,17],utlitii:15,uuid:[7,10,11,12],valid:[9,13],valu:[2,3,8,9,11,15,17,18,20],valueerror:15,variabl:[2,6,15],verbos:13,version:[4,9,15],via:[3,20],wait:[3,8,13],waiting_messag:11,walk:7,want:[2,9,13,15],warn:[2,11],warranti:9,weak:[2,15,20],web:9,weight:[9,13,15],well:9,when:[1,2,3,4,5,7,9,10,11,12,13,15,16],where:[3,9,11,15,20],which:[3,9,11,13,15,16],who:[1,11],wish:18,without:[9,12],word:9,work:[4,7,15],worker:[2,3,5,7,11,13,15],worker_id:11,worri:9,would:[13,15,20],wrap:[],wrapper:[],you:[2,4,9,11,12,13,15,18],your:[3,9,13,15],zcontext:[10,12],zeromq:9,zmq:[8,9,10,11,12,15,16,18],zmqreceivemixin:15,zmqsendmixin:15,zmqstream:12,zsocket:[10,12]},titles:["API Documentation","client – Client Utilities","jobs – Client Job Helpers","messages – Client Messaging","Contributing to EventMQ","exceptions – Exceptions","EventMQ Documentation","jobmanager – Job Manager","poller – Poller","EventMQ Protocol Specification","receiver – Receiver","router – Router","sender – Sender","Server Settings (eventmq.conf)","Using EventMQ","classes – Utility Classes","devices – Device Utilities","utils – Utilities","messages – Message Utilities","settings – Settings Utilities","timeutils – Time Utilites"],titleterms:{"class":15,Using:14,address:9,api:0,architectur:9,backend_addr:13,client:[1,2,3,9,14],concurrent_job:13,conf:13,contribut:4,devic:16,disconnect:9,document:[0,6],emqp:9,environ:14,eventmq:[4,6,9,13,14],except:5,frame:9,frontend_addr:13,global:[9,13],goal:9,header:9,heartbeat:9,helper:2,indic:6,job:[2,7,13],jobmanag:7,kbai:9,languag:9,licens:9,manag:[7,13],max_job_count:13,messag:[3,18],poller:8,protocol:9,publish:9,queue:13,receiv:10,router:[9,11,13],rq_db:13,rq_host:13,rq_password:13,rq_port:13,schedul:[9,13],scheduler_addr:13,sender:12,server:13,set:[13,19],setup_callab:13,setup_path:13,specif:9,super_debug:13,tabl:6,time:20,timeutil:20,topolog:9,util:[1,15,16,17,18,19],utilit:20,variabl:14,worker:9}}) \ No newline at end of file diff --git a/sender.html b/sender.html index 7ae2b7d..3b3930d 100755 --- a/sender.html +++ b/sender.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    diff --git a/settings_file.html b/settings_file.html index 2e17122..e488531 100755 --- a/settings_file.html +++ b/settings_file.html @@ -64,7 +64,7 @@
    - 0.3.2 + 0.3.3
    @@ -88,11 +88,28 @@
    • Using EventMQ
      • Server Settings (eventmq.conf) @@ -151,11 +168,55 @@

        Server Settings (eventmq.conf)

        EventMQ uses a standard INI style config file found at /etc/eventmq.conf.

        +
        +

        Global

        +
        +

        super_debug

        +

        Default: False

        +

        Enable most verbose level of debug statements

        +
        +

        Router

        +
        +

        frontend_addr

        +

        Default: ‘tcp://127.0.0.1:47291

        +

        The address used to listen for client and scheduler connections

        +
        +
        +

        backend_addr

        +

        Default: ‘tcp://127.0.0.1:47291

        +

        The address used to listen for connections from workers

        +

        Scheduler

        +
        +

        scheduler_addr

        +

        Default: ‘tcp://127.0.0.1:47291

        +

        The address the scheduler will use to connect to the broker

        +
        +
        +

        rq_host

        +

        Default: ‘localhost’

        +

        The hostname of the redis server used to persist scheduled jobs. This is +expected to support redis’ save operation which saves the contents to disk.

        +
        +
        +

        rq_port

        +

        Default: 6379

        +

        Port of redis server to connect to.

        +
        +
        +

        rq_db

        +

        Default: 0

        +

        Which redis database to use

        +
        +
        +

        rq_password

        +

        Default: ‘’

        +

        Password to use when connecting to redis

        +

        Job Manager

        @@ -176,7 +237,7 @@ running. Grouping similar jobs in named queues will help you tune this number.

        queues

        Default: [[10, “default”]]

        -

        Comma seperated list of queues to process jobs for with thier weights. This list +

        Comma seperated list of queues to process jobs for with their weights. This list must be valid JSON otherwise an error will be thrown. Example: queues=[[10, "data_process"], [15, "email"]]. With these weights and the CONCURRENT_JOBS setting, you should be able to tune managers @@ -192,6 +253,18 @@ default queue so that anything that is not explicitly assigned will still be run.

        +
        +

        setup_callabe/setup_path

        +

        Default: ‘’ (Signifies no task will be attempted)

        +

        Strings containing path and callable to be run when a worker is spawned +if applicable to that type of worker. Currently the only supported worker is a +MultiProcessWorker, and is useful for pulling any global state into memory.

        +
        +
        +

        max_job_count

        +

        Default: 1024

        +

        After a worker runs this amount of jobs, it will gracefully exit and be replaced

        +
        diff --git a/using.html b/using.html index 6c98bee..241728c 100755 --- a/using.html +++ b/using.html @@ -63,7 +63,7 @@
        - 0.3.2 + 0.3.3
        @@ -141,6 +141,7 @@
        • Server Settings (eventmq.conf)
            +
          • Global
          • Router
          • Scheduler
          • Job Manager
          • diff --git a/utils/classes.html b/utils/classes.html index ecce563..ed0df59 100755 --- a/utils/classes.html +++ b/utils/classes.html @@ -64,7 +64,7 @@
            - 0.3.2 + 0.3.3
            diff --git a/utils/devices.html b/utils/devices.html index cdb5e43..b3ce872 100755 --- a/utils/devices.html +++ b/utils/devices.html @@ -64,7 +64,7 @@
            - 0.3.2 + 0.3.3
            diff --git a/utils/index.html b/utils/index.html index 9f9a34b..b4380bc 100755 --- a/utils/index.html +++ b/utils/index.html @@ -64,7 +64,7 @@
            - 0.3.2 + 0.3.3
            diff --git a/utils/messages.html b/utils/messages.html index 5e73c19..83af15b 100755 --- a/utils/messages.html +++ b/utils/messages.html @@ -64,7 +64,7 @@
            - 0.3.2 + 0.3.3
            diff --git a/utils/settings.html b/utils/settings.html index c89c654..9460546 100755 --- a/utils/settings.html +++ b/utils/settings.html @@ -64,7 +64,7 @@
            - 0.3.2 + 0.3.3
            diff --git a/utils/timeutils.html b/utils/timeutils.html index 41c1435..7010c4a 100755 --- a/utils/timeutils.html +++ b/utils/timeutils.html @@ -64,7 +64,7 @@
            - 0.3.2 + 0.3.3
            -- cgit v1.2.1