aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xapi.html2
-rwxr-xr-xclient.html2
-rwxr-xr-xclient/jobs.html108
-rwxr-xr-xclient/messages.html5
-rwxr-xr-xcontributing.html2
-rwxr-xr-xexceptions.html8
-rwxr-xr-xgenindex.html20
-rwxr-xr-xindex.html2
-rwxr-xr-xjobmanager.html2
-rwxr-xr-xobjects.invbin1827 -> 1843 bytes
-rwxr-xr-xpoller.html2
-rwxr-xr-xprotocol.html2
-rwxr-xr-xpy-modindex.html2
-rwxr-xr-xreceiver.html2
-rwxr-xr-xrouter.html2
-rwxr-xr-xsearch.html2
-rw-r--r--searchindex.js2
-rwxr-xr-xsender.html2
-rwxr-xr-xsettings_file.html2
-rwxr-xr-xusing.html2
-rwxr-xr-xutils/classes.html2
-rwxr-xr-xutils/devices.html2
-rwxr-xr-xutils/index.html2
-rwxr-xr-xutils/messages.html2
-rwxr-xr-xutils/settings.html2
-rwxr-xr-xutils/timeutils.html2
26 files changed, 151 insertions, 32 deletions
diff --git a/api.html b/api.html
index 97d3423..fd1612f 100755
--- a/api.html
+++ b/api.html
@@ -63,7 +63,7 @@
63 63
64 64
65 <div class="version"> 65 <div class="version">
66 0.3 66 0.3.2
67 </div> 67 </div>
68 68
69 69
diff --git a/client.html b/client.html
index 0bf886e..af54a7e 100755
--- a/client.html
+++ b/client.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/client/jobs.html b/client/jobs.html
index ee1e871..1da5fca 100755
--- a/client/jobs.html
+++ b/client/jobs.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
@@ -157,6 +157,10 @@
157<dt id="eventmq.client.jobs.Job"> 157<dt id="eventmq.client.jobs.Job">
158<em class="property">class </em><code class="descclassname">eventmq.client.jobs.</code><code class="descname">Job</code><span class="sig-paren">(</span><em>broker_addr=None</em>, <em>queue=None</em>, <em>async=True</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.jobs.Job" title="Permalink to this definition">¶</a></dt> 158<em class="property">class </em><code class="descclassname">eventmq.client.jobs.</code><code class="descname">Job</code><span class="sig-paren">(</span><em>broker_addr=None</em>, <em>queue=None</em>, <em>async=True</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.jobs.Job" title="Permalink to this definition">¶</a></dt>
159<dd><p>Defines a deferred EventMQ job.</p> 159<dd><p>Defines a deferred EventMQ job.</p>
160<div class="admonition note">
161<p class="first admonition-title">Note</p>
162<p class="last">All passed class &amp; function kwargs/args MUST be json serializable.</p>
163</div>
160<p>Usage:</p> 164<p>Usage:</p>
161<div class="highlight-python"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">eventmq</span> <span class="kn">import</span> <span class="n">job</span> 165<div class="highlight-python"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">eventmq</span> <span class="kn">import</span> <span class="n">job</span>
162 166
@@ -217,6 +221,108 @@ can set this to False. This is useful for unit tests.</li>
217<a class="reference internal" href="#eventmq.client.jobs.Job" title="eventmq.client.jobs.Job"><code class="xref py py-class docutils literal"><span class="pre">Job</span></code></a> for more information.</p> 221<a class="reference internal" href="#eventmq.client.jobs.Job" title="eventmq.client.jobs.Job"><code class="xref py py-class docutils literal"><span class="pre">Job</span></code></a> for more information.</p>
218</dd></dl> 222</dd></dl>
219 223
224<dl class="function">
225<dt id="eventmq.client.jobs.schedule">
226<code class="descclassname">eventmq.client.jobs.</code><code class="descname">schedule</code><span class="sig-paren">(</span><em>func</em>, <em>broker_addr=None</em>, <em>interval_secs=None</em>, <em>args=()</em>, <em>kwargs=None</em>, <em>class_args=()</em>, <em>class_kwargs=None</em>, <em>headers=('guarantee'</em>, <em>)</em>, <em>queue='default'</em>, <em>cron=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.jobs.schedule" title="Permalink to this definition">¶</a></dt>
227<dd><p>Execute a task on a defined interval.</p>
228<div class="admonition note">
229<p class="first admonition-title">Note</p>
230<p class="last">All passed class &amp; function kwargs/args MUST be json serializable.</p>
231</div>
232<table class="docutils field-list" frame="void" rules="none">
233<col class="field-name" />
234<col class="field-body" />
235<tbody valign="top">
236<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
237<li><strong>func</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) &#8211; the callable (or string path to calable) to be
238scheduled on a worker</li>
239<li><strong>broker_addr</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; Address of the broker to send the job to. If no
240address is given then the value of the environment variable
241<code class="docutils literal"><span class="pre">EMQ_BROKER_ADDR</span></code> will be used.</li>
242<li><strong>interval_secs</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; Run job every interval_secs or None if using cron</li>
243<li><strong>args</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id1"><span class="problematic" id="id2">*</span></a>args to pass to the callable</li>
244<li><strong>kwargs</strong> (<a class="reference external" href="https://docs.python.org/2/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id3"><span class="problematic" id="id4">**</span></a>kwargs to pass to the callable</li>
245<li><strong>class_args</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id5"><span class="problematic" id="id6">*</span></a>args to pass to the class (if applicable)</li>
246<li><strong>class_kwargs</strong> (<a class="reference external" href="https://docs.python.org/2/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id7"><span class="problematic" id="id8">**</span></a>kwargs to pass to the class (if
247applicable)</li>
248<li><strong>headers</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of strings denoting enabled headers. Default:
249guarantee is enabled to ensure the scheduler schedules the job.</li>
250<li><strong>queue</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; name of the queue to use when executing the job. The
251default value is the default queue.</li>
252<li><strong>cron</strong> (<a class="reference external" href="https://docs.python.org/2/library/string.html#module-string" title="(in Python v2.7)"><em>string</em></a>) &#8211; cron formatted string used for job schedule if
253interval_secs is None, i.e. &#8216;* * * * <a href="#id9"><span class="problematic" id="id10">*</span></a>&#8216; (every minute)</li>
254</ul>
255</td>
256</tr>
257<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-exc docutils literal"><span class="pre">TypeError</span></code> &#8211; When one or more parameters are not JSON serializable.</p>
258</td>
259</tr>
260<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><dl class="docutils">
261<dt>ID of the schedule message that was sent. None if there was an</dt>
262<dd><p class="first last">error</p>
263</dd>
264</dl>
265</p>
266</td>
267</tr>
268<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2/library/functions.html#str" title="(in Python v2.7)">str</a></p>
269</td>
270</tr>
271</tbody>
272</table>
273</dd></dl>
274
275<dl class="function">
276<dt id="eventmq.client.jobs.unschedule">
277<code class="descclassname">eventmq.client.jobs.</code><code class="descname">unschedule</code><span class="sig-paren">(</span><em>func</em>, <em>broker_addr=None</em>, <em>interval_secs=None</em>, <em>args=()</em>, <em>kwargs=None</em>, <em>class_args=()</em>, <em>class_kwargs=None</em>, <em>headers=('guarantee'</em>, <em>)</em>, <em>queue='default'</em>, <em>cron=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.jobs.unschedule" title="Permalink to this definition">¶</a></dt>
278<dd><p>Stop periodically executing a task</p>
279<div class="admonition note">
280<p class="first admonition-title">Note</p>
281<p class="last">All passed class &amp; function kwargs/args MUST be json serializable.</p>
282</div>
283<table class="docutils field-list" frame="void" rules="none">
284<col class="field-name" />
285<col class="field-body" />
286<tbody valign="top">
287<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
288<li><strong>func</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) &#8211; the callable (or string path to calable) to be
289scheduled on a worker</li>
290<li><strong>broker_addr</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; Address of the broker to send the job to. If no
291address is given then the value of the environment variable
292<code class="docutils literal"><span class="pre">EMQ_BROKER_ADDR</span></code> will be used.</li>
293<li><strong>interval_secs</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; Run job every interval_secs or None if using cron</li>
294<li><strong>args</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id11"><span class="problematic" id="id12">*</span></a>args to pass to the callable</li>
295<li><strong>kwargs</strong> (<a class="reference external" href="https://docs.python.org/2/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id13"><span class="problematic" id="id14">**</span></a>kwargs to pass to the callable</li>
296<li><strong>class_args</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id15"><span class="problematic" id="id16">*</span></a>args to pass to the class (if applicable)</li>
297<li><strong>class_kwargs</strong> (<a class="reference external" href="https://docs.python.org/2/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id17"><span class="problematic" id="id18">**</span></a>kwargs to pass to the class (if
298applicable)</li>
299<li><strong>headers</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of strings denoting enabled headers. Default:
300guarantee is enabled to ensure the scheduler schedules the job.</li>
301<li><strong>queue</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; name of the queue to use when executing the job. The
302default value is the default queue.</li>
303<li><strong>cron</strong> (<a class="reference external" href="https://docs.python.org/2/library/string.html#module-string" title="(in Python v2.7)"><em>string</em></a>) &#8211; cron formatted string used for job schedule if
304interval_secs is None, i.e. &#8216;* * * * <a href="#id19"><span class="problematic" id="id20">*</span></a>&#8216; (every minute)</li>
305</ul>
306</td>
307</tr>
308<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first"><code class="xref py py-exc docutils literal"><span class="pre">TypeError</span></code> &#8211; When one or more parameters are not JSON serializable.</p>
309</td>
310</tr>
311<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><dl class="docutils">
312<dt>ID of the schedule message that was sent. None if there was an</dt>
313<dd><p class="first last">error</p>
314</dd>
315</dl>
316</p>
317</td>
318</tr>
319<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/2/library/functions.html#str" title="(in Python v2.7)">str</a></p>
320</td>
321</tr>
322</tbody>
323</table>
324</dd></dl>
325
220</div> 326</div>
221 327
222 328
diff --git a/client/messages.html b/client/messages.html
index fa402db..e929598 100755
--- a/client/messages.html
+++ b/client/messages.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
@@ -227,9 +227,8 @@ default queue name</li>
227<li><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/2/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) &#8211; eventmq socket to use for sending the message</li> 227<li><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/2/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) &#8211; eventmq socket to use for sending the message</li>
228<li><strong>func</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) &#8211; the callable (or string path to calable) to be 228<li><strong>func</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) &#8211; the callable (or string path to calable) to be
229scheduled on a worker</li> 229scheduled on a worker</li>
230<li><strong>minutes</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; minutes to wait in between executions</li>
231<li><strong>args</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id9"><span class="problematic" id="id10">*</span></a>args to pass to the callable</li>
232<li><strong>interval_secs</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; Run job every interval_secs or None if using cron</li> 230<li><strong>interval_secs</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; Run job every interval_secs or None if using cron</li>
231<li><strong>args</strong> (<a class="reference external" href="https://docs.python.org/2/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id9"><span class="problematic" id="id10">*</span></a>args to pass to the callable</li>
233<li><strong>cron</strong> (<a class="reference external" href="https://docs.python.org/2/library/string.html#module-string" title="(in Python v2.7)"><em>string</em></a>) &#8211; cron formatted string used for job schedule if 232<li><strong>cron</strong> (<a class="reference external" href="https://docs.python.org/2/library/string.html#module-string" title="(in Python v2.7)"><em>string</em></a>) &#8211; cron formatted string used for job schedule if
234interval_secs is None, i.e. &#8216;* * * * <a href="#id11"><span class="problematic" id="id12">*</span></a>&#8216; (every minute)</li> 233interval_secs is None, i.e. &#8216;* * * * <a href="#id11"><span class="problematic" id="id12">*</span></a>&#8216; (every minute)</li>
235<li><strong>kwargs</strong> (<a class="reference external" href="https://docs.python.org/2/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id13"><span class="problematic" id="id14">**</span></a>kwargs to pass to the callable</li> 234<li><strong>kwargs</strong> (<a class="reference external" href="https://docs.python.org/2/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id13"><span class="problematic" id="id14">**</span></a>kwargs to pass to the callable</li>
diff --git a/contributing.html b/contributing.html
index be3ab1e..e59f7eb 100755
--- a/contributing.html
+++ b/contributing.html
@@ -63,7 +63,7 @@
63 63
64 64
65 <div class="version"> 65 <div class="version">
66 0.3 66 0.3.2
67 </div> 67 </div>
68 68
69 69
diff --git a/exceptions.html b/exceptions.html
index c876286..2b891ea 100755
--- a/exceptions.html
+++ b/exceptions.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
@@ -156,6 +156,12 @@ be subclasses of <a class="reference internal" href="#eventmq.exceptions.EventMQ
156</dd></dl> 156</dd></dl>
157 157
158<dl class="exception"> 158<dl class="exception">
159<dt id="eventmq.exceptions.ConnectionError">
160<em class="property">exception </em><code class="descclassname">eventmq.exceptions.</code><code class="descname">ConnectionError</code><a class="headerlink" href="#eventmq.exceptions.ConnectionError" title="Permalink to this definition">¶</a></dt>
161<dd><p>Raised when there is an error connecting to a network service.</p>
162</dd></dl>
163
164<dl class="exception">
159<dt id="eventmq.exceptions.EventMQError"> 165<dt id="eventmq.exceptions.EventMQError">
160<em class="property">exception </em><code class="descclassname">eventmq.exceptions.</code><code class="descname">EventMQError</code><a class="headerlink" href="#eventmq.exceptions.EventMQError" title="Permalink to this definition">¶</a></dt> 166<em class="property">exception </em><code class="descclassname">eventmq.exceptions.</code><code class="descname">EventMQError</code><a class="headerlink" href="#eventmq.exceptions.EventMQError" title="Permalink to this definition">¶</a></dt>
161<dd><p>All exceptions raised by EventMQ inherit from this base exception.</p> 167<dd><p>All exceptions raised by EventMQ inherit from this base exception.</p>
diff --git a/genindex.html b/genindex.html
index 48dcfd1..b6da84a 100755
--- a/genindex.html
+++ b/genindex.html
@@ -62,7 +62,7 @@
62 62
63 63
64 <div class="version"> 64 <div class="version">
65 0.3 65 0.3.2
66 </div> 66 </div>
67 67
68 68
@@ -224,10 +224,10 @@
224</li> 224</li>
225 <li><a href="router.html#eventmq.router.Router.clean_up_dead_schedulers">clean_up_dead_schedulers() (eventmq.router.Router method)</a> 225 <li><a href="router.html#eventmq.router.Router.clean_up_dead_schedulers">clean_up_dead_schedulers() (eventmq.router.Router method)</a>
226</li> 226</li>
227 </ul></td>
228 <td style="width: 33%; vertical-align: top;"><ul>
229 <li><a href="router.html#eventmq.router.Router.clean_up_dead_workers">clean_up_dead_workers() (eventmq.router.Router method)</a> 227 <li><a href="router.html#eventmq.router.Router.clean_up_dead_workers">clean_up_dead_workers() (eventmq.router.Router method)</a>
230</li> 228</li>
229 </ul></td>
230 <td style="width: 33%; vertical-align: top;"><ul>
231 <li><a href="jobmanager.html#eventmq.jobmanager.JobManager.concurrent_jobs">concurrent_jobs (eventmq.jobmanager.JobManager attribute)</a> 231 <li><a href="jobmanager.html#eventmq.jobmanager.JobManager.concurrent_jobs">concurrent_jobs (eventmq.jobmanager.JobManager attribute)</a>
232</li> 232</li>
233 <li><a href="receiver.html#eventmq.receiver.Receiver.connect">connect() (eventmq.receiver.Receiver method)</a> 233 <li><a href="receiver.html#eventmq.receiver.Receiver.connect">connect() (eventmq.receiver.Receiver method)</a>
@@ -236,6 +236,8 @@
236 <li><a href="sender.html#eventmq.sender.Sender.connect">(eventmq.sender.Sender method)</a> 236 <li><a href="sender.html#eventmq.sender.Sender.connect">(eventmq.sender.Sender method)</a>
237</li> 237</li>
238 </ul></li> 238 </ul></li>
239 <li><a href="exceptions.html#eventmq.exceptions.ConnectionError">ConnectionError</a>
240</li>
239 </ul></td> 241 </ul></td>
240</tr></table> 242</tr></table>
241 243
@@ -538,8 +540,12 @@
538<h2 id="S">S</h2> 540<h2 id="S">S</h2>
539<table style="width: 100%" class="indextable genindextable"><tr> 541<table style="width: 100%" class="indextable genindextable"><tr>
540 <td style="width: 33%; vertical-align: top;"><ul> 542 <td style="width: 33%; vertical-align: top;"><ul>
541 <li><a href="client/messages.html#eventmq.client.messages.schedule">schedule() (in module eventmq.client.messages)</a> 543 <li><a href="client/jobs.html#eventmq.client.jobs.schedule">schedule() (in module eventmq.client.jobs)</a>
544
545 <ul>
546 <li><a href="client/messages.html#eventmq.client.messages.schedule">(in module eventmq.client.messages)</a>
542</li> 547</li>
548 </ul></li>
543 <li><a href="router.html#eventmq.router.Router.scheduler_queue">scheduler_queue (eventmq.router.Router attribute)</a> 549 <li><a href="router.html#eventmq.router.Router.scheduler_queue">scheduler_queue (eventmq.router.Router attribute)</a>
544</li> 550</li>
545 <li><a href="router.html#eventmq.router.Router.schedulers">schedulers (eventmq.router.Router attribute)</a> 551 <li><a href="router.html#eventmq.router.Router.schedulers">schedulers (eventmq.router.Router attribute)</a>
@@ -560,10 +566,10 @@
560 <li><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.send_heartbeat">(eventmq.utils.classes.HeartbeatMixin method)</a> 566 <li><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.send_heartbeat">(eventmq.utils.classes.HeartbeatMixin method)</a>
561</li> 567</li>
562 </ul></li> 568 </ul></li>
563 <li><a href="utils/classes.html#eventmq.utils.classes.EMQPService.send_inform">send_inform() (eventmq.utils.classes.EMQPService method)</a>
564</li>
565 </ul></td> 569 </ul></td>
566 <td style="width: 33%; vertical-align: top;"><ul> 570 <td style="width: 33%; vertical-align: top;"><ul>
571 <li><a href="utils/classes.html#eventmq.utils.classes.EMQPService.send_inform">send_inform() (eventmq.utils.classes.EMQPService method)</a>
572</li>
567 <li><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.send_multipart">send_multipart() (eventmq.utils.classes.ZMQSendMixin method)</a> 573 <li><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.send_multipart">send_multipart() (eventmq.utils.classes.ZMQSendMixin method)</a>
568</li> 574</li>
569 <li><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_ready">send_ready() (eventmq.jobmanager.JobManager method)</a> 575 <li><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_ready">send_ready() (eventmq.jobmanager.JobManager method)</a>
@@ -618,6 +624,8 @@
618</li> 624</li>
619 <li><a href="poller.html#eventmq.poller.Poller.unregister">unregister() (eventmq.poller.Poller method)</a> 625 <li><a href="poller.html#eventmq.poller.Poller.unregister">unregister() (eventmq.poller.Poller method)</a>
620</li> 626</li>
627 <li><a href="client/jobs.html#eventmq.client.jobs.unschedule">unschedule() (in module eventmq.client.jobs)</a>
628</li>
621 </ul></td> 629 </ul></td>
622</tr></table> 630</tr></table>
623 631
diff --git a/index.html b/index.html
index 8062ea2..218208c 100755
--- a/index.html
+++ b/index.html
@@ -62,7 +62,7 @@
62 62
63 63
64 <div class="version"> 64 <div class="version">
65 0.3 65 0.3.2
66 </div> 66 </div>
67 67
68 68
diff --git a/jobmanager.html b/jobmanager.html
index 56fc78a..310bada 100755
--- a/jobmanager.html
+++ b/jobmanager.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/objects.inv b/objects.inv
index f3510d8..970792d 100755
--- a/objects.inv
+++ b/objects.inv
Binary files differ
diff --git a/poller.html b/poller.html
index fa1dc92..2b7aefa 100755
--- a/poller.html
+++ b/poller.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/protocol.html b/protocol.html
index 6ee2aec..c9c37f0 100755
--- a/protocol.html
+++ b/protocol.html
@@ -63,7 +63,7 @@
63 63
64 64
65 <div class="version"> 65 <div class="version">
66 0.3 66 0.3.2
67 </div> 67 </div>
68 68
69 69
diff --git a/py-modindex.html b/py-modindex.html
index e96a8d9..4e69243 100755
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/receiver.html b/receiver.html
index 4628c8f..27b22d2 100755
--- a/receiver.html
+++ b/receiver.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/router.html b/router.html
index ca1a278..7e44507 100755
--- a/router.html
+++ b/router.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/search.html b/search.html
index a93c01e..584150a 100755
--- a/search.html
+++ b/search.html
@@ -61,7 +61,7 @@
61 61
62 62
63 <div class="version"> 63 <div class="version">
64 0.3 64 0.3.2
65 </div> 65 </div>
66 66
67 67
diff --git a/searchindex.js b/searchindex.js
index 3878ae4..dd15a3b 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,""]},"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,""],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":[3,8,9,11,15,20],"long":[8,15],"new":[11,15],"public":9,"return":[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:[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:[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:[3,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:3,calcul:20,call:[3,8,11,15],callabl:[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:[3,7],class_kwarg:[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:[7,9,10,11,12,14,15,18],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: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:3,depth:11,dequ:15,describ:9,descript:9,detail:9,detect:9,determin:9,devic:[0,8,15,17,18],dialog:9,dict:[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:[3,15],encod:16,encount:[3,5],end:[3,15],ensur:[3,7,9,15],entri:11,environ:[2,6],equal:13,error:[3,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:[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:[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:[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: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:[3,9,20],interval_sec:[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:[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: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:[3,9,13,15],name:[2,3,7,9,10,11,12,13,19],necessari:7,need:[11,12],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,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:[3,9,10,15],password:2,path:[3,5,7],payload:18,peek:15,peekleft:15,peer:[5,9,15],peergoneawayerror:[5,11],pend:9,per:11,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:[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:[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:[3,9,11,13,15],seper:[3,9,13],serial:11,serializ:3,serv:9,server:[6,7,9,14],servic:[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:9,store:11,str:[2,3,7,10,11,12,15,16,17,18,19],string:[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:[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:[3,9,10,11,12,15,17,18],type_:15,typecast:8,typeerror:[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:[3,9],until:[13,20],untouch:[11,18],unus:9,updat:15,upon:9,upstream:7,usag:[2,20],use:[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:[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,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:[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","<code class=\"docutils literal\"><span class=\"pre\">client</span></code> &#8211; Client Utilities","<code class=\"docutils literal\"><span class=\"pre\">jobs</span></code> &#8211; Client Job Helpers","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Client Messaging","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> &#8211; Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> &#8211; Poller","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender","Server Settings (eventmq.conf)","Using EventMQ","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> &#8211; Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">devices</span></code> &#8211; Device Utilities","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> &#8211; Utilities","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">settings</span></code> &#8211; Settings Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> &#8211; 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,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","<code class=\"docutils literal\"><span class=\"pre\">client</span></code> &#8211; Client Utilities","<code class=\"docutils literal\"><span class=\"pre\">jobs</span></code> &#8211; Client Job Helpers","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Client Messaging","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> &#8211; Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> &#8211; Poller","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender","Server Settings (eventmq.conf)","Using EventMQ","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> &#8211; Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">devices</span></code> &#8211; Device Utilities","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> &#8211; Utilities","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">settings</span></code> &#8211; Settings Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> &#8211; 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
diff --git a/sender.html b/sender.html
index 2434a89..7ce0425 100755
--- a/sender.html
+++ b/sender.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/settings_file.html b/settings_file.html
index d8dfb1a..ecead08 100755
--- a/settings_file.html
+++ b/settings_file.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/using.html b/using.html
index 15624a7..6a76131 100755
--- a/using.html
+++ b/using.html
@@ -63,7 +63,7 @@
63 63
64 64
65 <div class="version"> 65 <div class="version">
66 0.3 66 0.3.2
67 </div> 67 </div>
68 68
69 69
diff --git a/utils/classes.html b/utils/classes.html
index b1ff6e8..970206e 100755
--- a/utils/classes.html
+++ b/utils/classes.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/utils/devices.html b/utils/devices.html
index a894938..b02f6a2 100755
--- a/utils/devices.html
+++ b/utils/devices.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/utils/index.html b/utils/index.html
index 6be69e7..d32185f 100755
--- a/utils/index.html
+++ b/utils/index.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/utils/messages.html b/utils/messages.html
index 8760670..4c21a9a 100755
--- a/utils/messages.html
+++ b/utils/messages.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/utils/settings.html b/utils/settings.html
index 55ced2e..0464a98 100755
--- a/utils/settings.html
+++ b/utils/settings.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70
diff --git a/utils/timeutils.html b/utils/timeutils.html
index 5a1574e..22d0323 100755
--- a/utils/timeutils.html
+++ b/utils/timeutils.html
@@ -64,7 +64,7 @@
64 64
65 65
66 <div class="version"> 66 <div class="version">
67 0.3 67 0.3.2
68 </div> 68 </div>
69 69
70 70