diff options
| -rw-r--r-- | _sources/protocol.txt | 4 | ||||
| -rw-r--r-- | client/messages.html | 51 | ||||
| -rw-r--r-- | exceptions.html | 5 | ||||
| -rw-r--r-- | genindex.html | 94 | ||||
| -rw-r--r-- | jobmanager.html | 59 | ||||
| -rw-r--r-- | objects.inv | bin | 1163 -> 1054 bytes | |||
| -rw-r--r-- | poller.html | 1 | ||||
| -rw-r--r-- | protocol.html | 4 | ||||
| -rw-r--r-- | router.html | 72 | ||||
| -rw-r--r-- | searchindex.js | 2 | ||||
| -rw-r--r-- | utils/classes.html | 111 | ||||
| -rw-r--r-- | utils/timeutils.html | 42 |
12 files changed, 85 insertions, 360 deletions
diff --git a/_sources/protocol.txt b/_sources/protocol.txt index ddbcfcc..35b541f 100644 --- a/_sources/protocol.txt +++ b/_sources/protocol.txt | |||
| @@ -17,9 +17,9 @@ The goals are to: | |||
| 17 | 17 | ||
| 18 | License | 18 | License |
| 19 | ======= | 19 | ======= |
| 20 | This Specification is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. | 20 | This Specification is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version. |
| 21 | 21 | ||
| 22 | This Specification is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | 22 | This Specification is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. |
| 23 | 23 | ||
| 24 | Language | 24 | Language |
| 25 | ======== | 25 | ======== |
diff --git a/client/messages.html b/client/messages.html index 744397a..4b9647f 100644 --- a/client/messages.html +++ b/client/messages.html | |||
| @@ -226,34 +226,6 @@ that would otherwise overwhelm a box that has to do it all alone. | |||
| 226 | </dd></dl> | 226 | </dd></dl> |
| 227 | 227 | ||
| 228 | <dl class="function"> | 228 | <dl class="function"> |
| 229 | <dt id="eventmq.client.messages.schedule"> | ||
| 230 | <code class="descclassname">eventmq.client.messages.</code><code class="descname">schedule</code><span class="sig-paren">(</span><em>socket</em>, <em>func</em>, <em>interval_secs</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>unschedule=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.schedule" title="Permalink to this definition">¶</a></dt> | ||
| 231 | <dd><p>Execute a task on a defined interval.</p> | ||
| 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 last simple"> | ||
| 237 | <li><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) – eventmq socket to use for sending the message</li> | ||
| 238 | <li><strong>func</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) – the callable to be scheduled on a worker</li> | ||
| 239 | <li><strong>minutes</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) – minutes to wait in between executions</li> | ||
| 240 | <li><strong>args</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) – list of <a href="#id9"><span class="problematic" id="id10">*</span></a>args to pass to the callable</li> | ||
| 241 | <li><strong>kwargs</strong> (<a class="reference external" href="https://docs.python.org/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) – dict of <a href="#id11"><span class="problematic" id="id12">**</span></a>kwargs to pass to the callable</li> | ||
| 242 | <li><strong>class_args</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) – list of <a href="#id13"><span class="problematic" id="id14">*</span></a>args to pass to the class (if applicable)</li> | ||
| 243 | <li><strong>class_kwargs</strong> (<a class="reference external" href="https://docs.python.org/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) – dict of <a href="#id15"><span class="problematic" id="id16">**</span></a>kwargs to pass to the class (if | ||
| 244 | applicable)</li> | ||
| 245 | <li><strong>headers</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) – list of strings denoting enabled headers. Default: | ||
| 246 | guarantee is enabled to ensure the scheduler schedules the job.</li> | ||
| 247 | <li><strong>queue</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – name of the queue to use when executing the job. The | ||
| 248 | default value is the default queue.</li> | ||
| 249 | </ul> | ||
| 250 | </td> | ||
| 251 | </tr> | ||
| 252 | </tbody> | ||
| 253 | </table> | ||
| 254 | </dd></dl> | ||
| 255 | |||
| 256 | <dl class="function"> | ||
| 257 | <dt id="eventmq.client.messages.send_request"> | 229 | <dt id="eventmq.client.messages.send_request"> |
| 258 | <code class="descclassname">eventmq.client.messages.</code><code class="descname">send_request</code><span class="sig-paren">(</span><em>socket</em>, <em>message</em>, <em>reply_requested=False</em>, <em>guarantee=False</em>, <em>retry_count=0</em>, <em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.send_request" title="Permalink to this definition">¶</a></dt> | 230 | <code class="descclassname">eventmq.client.messages.</code><code class="descname">send_request</code><span class="sig-paren">(</span><em>socket</em>, <em>message</em>, <em>reply_requested=False</em>, <em>guarantee=False</em>, <em>retry_count=0</em>, <em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.send_request" title="Permalink to this definition">¶</a></dt> |
| 259 | <dd><p>Send a REQUEST command.</p> | 231 | <dd><p>Send a REQUEST command.</p> |
| @@ -304,29 +276,6 @@ configured default queue name</li> | |||
| 304 | </table> | 276 | </table> |
| 305 | </dd></dl> | 277 | </dd></dl> |
| 306 | 278 | ||
| 307 | <dl class="function"> | ||
| 308 | <dt id="eventmq.client.messages.send_schedule_request"> | ||
| 309 | <code class="descclassname">eventmq.client.messages.</code><code class="descname">send_schedule_request</code><span class="sig-paren">(</span><em>socket</em>, <em>interval_secs</em>, <em>message</em>, <em>headers=()</em>, <em>queue=None</em>, <em>unschedule=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.send_schedule_request" title="Permalink to this definition">¶</a></dt> | ||
| 310 | <dd><p>Send a SCHEDULE or UNSCHEDULE command.</p> | ||
| 311 | <p>Queues a message requesting that something happens on an | ||
| 312 | interval for the scheduler.</p> | ||
| 313 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 314 | <col class="field-name" /> | ||
| 315 | <col class="field-body" /> | ||
| 316 | <tbody valign="top"> | ||
| 317 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> | ||
| 318 | <li><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) – </li> | ||
| 319 | <li><strong>interval_secs</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) – </li> | ||
| 320 | <li><strong>message</strong> – Message to send socket.</li> | ||
| 321 | <li><strong>headers</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) – List of headers for the message</li> | ||
| 322 | <li><strong>queue</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – name of queue the job should be executed in</li> | ||
| 323 | </ul> | ||
| 324 | </td> | ||
| 325 | </tr> | ||
| 326 | </tbody> | ||
| 327 | </table> | ||
| 328 | </dd></dl> | ||
| 329 | |||
| 330 | </div> | 279 | </div> |
| 331 | 280 | ||
| 332 | 281 | ||
diff --git a/exceptions.html b/exceptions.html index 1aa304f..a192639 100644 --- a/exceptions.html +++ b/exceptions.html | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | <link rel="top" title="EventMQ 0 documentation" href="index.html"/> | 33 | <link rel="top" title="EventMQ 0 documentation" href="index.html"/> |
| 34 | <link rel="up" title="API Documentation" href="api.html"/> | 34 | <link rel="up" title="API Documentation" href="api.html"/> |
| 35 | <link rel="next" title="jobmanager – Job Manager" href="jobmanager.html"/> | 35 | <link rel="next" title="jobmanager – Job Manager" href="jobmanager.html"/> |
| 36 | <link rel="prev" title="API Documentation" href="api.html"/> | 36 | <link rel="prev" title="messages – Client Messaging" href="client/messages.html"/> |
| 37 | 37 | ||
| 38 | 38 | ||
| 39 | <script src="_static/js/modernizr.min.js"></script> | 39 | <script src="_static/js/modernizr.min.js"></script> |
| @@ -84,6 +84,7 @@ | |||
| 84 | 84 | ||
| 85 | <ul class="current"> | 85 | <ul class="current"> |
| 86 | <li class="toctree-l1 current"><a class="reference internal" href="api.html">API Documentation</a><ul class="current"> | 86 | <li class="toctree-l1 current"><a class="reference internal" href="api.html">API Documentation</a><ul class="current"> |
| 87 | <li class="toctree-l2"><a class="reference internal" href="client.html"><code class="docutils literal"><span class="pre">client</span></code> – Client Utilities</a></li> | ||
| 87 | <li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">exceptions</span></code> – Exceptions</a></li> | 88 | <li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">exceptions</span></code> – Exceptions</a></li> |
| 88 | <li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> – Job Manager</a></li> | 89 | <li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> – Job Manager</a></li> |
| 89 | <li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> – Poller</a></li> | 90 | <li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> – Poller</a></li> |
| @@ -181,7 +182,7 @@ sending a message to it)</p> | |||
| 181 | <a href="jobmanager.html" class="btn btn-neutral float-right" title="jobmanager – Job Manager" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> | 182 | <a href="jobmanager.html" class="btn btn-neutral float-right" title="jobmanager – Job Manager" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> |
| 182 | 183 | ||
| 183 | 184 | ||
| 184 | <a href="api.html" class="btn btn-neutral" title="API Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> | 185 | <a href="client/messages.html" class="btn btn-neutral" title="messages – Client Messaging" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> |
| 185 | 186 | ||
| 186 | </div> | 187 | </div> |
| 187 | 188 | ||
diff --git a/genindex.html b/genindex.html index f1aa454..89b10e7 100644 --- a/genindex.html +++ b/genindex.html | |||
| @@ -178,23 +178,15 @@ | |||
| 178 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.__init__">(eventmq.utils.classes.HeartbeatMixin method)</a> | 178 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.__init__">(eventmq.utils.classes.HeartbeatMixin method)</a> |
| 179 | </dt> | 179 | </dt> |
| 180 | 180 | ||
| 181 | |||
| 182 | <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.IntervalIter.__init__">(eventmq.utils.timeutils.IntervalIter method)</a> | ||
| 183 | </dt> | ||
| 184 | |||
| 185 | </dl></dd> | 181 | </dl></dd> |
| 186 | </dl></td> | 182 | </dl></td> |
| 187 | <td style="width: 33%" valign="top"><dl> | 183 | <td style="width: 33%" valign="top"><dl> |
| 188 | 184 | ||
| 189 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.__weakref__">__weakref__ (eventmq.utils.classes.EMQPService attribute)</a> | 185 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.__weakref__">__weakref__ (eventmq.utils.classes.HeartbeatMixin attribute)</a> |
| 190 | </dt> | 186 | </dt> |
| 191 | 187 | ||
| 192 | <dd><dl> | 188 | <dd><dl> |
| 193 | 189 | ||
| 194 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.__weakref__">(eventmq.utils.classes.HeartbeatMixin attribute)</a> | ||
| 195 | </dt> | ||
| 196 | |||
| 197 | |||
| 198 | <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.__weakref__">(eventmq.utils.classes.ZMQReceiveMixin attribute)</a> | 190 | <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.__weakref__">(eventmq.utils.classes.ZMQReceiveMixin attribute)</a> |
| 199 | </dt> | 191 | </dt> |
| 200 | 192 | ||
| @@ -202,10 +194,6 @@ | |||
| 202 | <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.__weakref__">(eventmq.utils.classes.ZMQSendMixin attribute)</a> | 194 | <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.__weakref__">(eventmq.utils.classes.ZMQSendMixin attribute)</a> |
| 203 | </dt> | 195 | </dt> |
| 204 | 196 | ||
| 205 | |||
| 206 | <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.IntervalIter.__weakref__">(eventmq.utils.timeutils.IntervalIter attribute)</a> | ||
| 207 | </dt> | ||
| 208 | |||
| 209 | </dl></dd> | 197 | </dl></dd> |
| 210 | </dl></td> | 198 | </dl></td> |
| 211 | </tr></table> | 199 | </tr></table> |
| @@ -218,16 +206,12 @@ | |||
| 218 | </dt> | 206 | </dt> |
| 219 | 207 | ||
| 220 | 208 | ||
| 221 | <dt><a href="router.html#eventmq.router.Router.add_scheduler">add_scheduler() (eventmq.router.Router method)</a> | 209 | <dt><a href="router.html#eventmq.router.Router.add_worker">add_worker() (eventmq.router.Router method)</a> |
| 222 | </dt> | 210 | </dt> |
| 223 | 211 | ||
| 224 | </dl></td> | 212 | </dl></td> |
| 225 | <td style="width: 33%" valign="top"><dl> | 213 | <td style="width: 33%" valign="top"><dl> |
| 226 | 214 | ||
| 227 | <dt><a href="router.html#eventmq.router.Router.add_worker">add_worker() (eventmq.router.Router method)</a> | ||
| 228 | </dt> | ||
| 229 | |||
| 230 | |||
| 231 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.available_workers">available_workers (eventmq.jobmanager.JobManager attribute)</a> | 215 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.available_workers">available_workers (eventmq.jobmanager.JobManager attribute)</a> |
| 232 | </dt> | 216 | </dt> |
| 233 | 217 | ||
| @@ -248,10 +232,6 @@ | |||
| 248 | <table style="width: 100%" class="indextable genindextable"><tr> | 232 | <table style="width: 100%" class="indextable genindextable"><tr> |
| 249 | <td style="width: 33%" valign="top"><dl> | 233 | <td style="width: 33%" valign="top"><dl> |
| 250 | 234 | ||
| 251 | <dt><a href="router.html#eventmq.router.Router.clean_up_dead_schedulers">clean_up_dead_schedulers() (eventmq.router.Router method)</a> | ||
| 252 | </dt> | ||
| 253 | |||
| 254 | |||
| 255 | <dt><a href="router.html#eventmq.router.Router.clean_up_dead_workers">clean_up_dead_workers() (eventmq.router.Router method)</a> | 235 | <dt><a href="router.html#eventmq.router.Router.clean_up_dead_workers">clean_up_dead_workers() (eventmq.router.Router method)</a> |
| 256 | </dt> | 236 | </dt> |
| 257 | 237 | ||
| @@ -284,10 +264,6 @@ | |||
| 284 | <table style="width: 100%" class="indextable genindextable"><tr> | 264 | <table style="width: 100%" class="indextable genindextable"><tr> |
| 285 | <td style="width: 33%" valign="top"><dl> | 265 | <td style="width: 33%" valign="top"><dl> |
| 286 | 266 | ||
| 287 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService">EMQPService (class in eventmq.utils.classes)</a> | ||
| 288 | </dt> | ||
| 289 | |||
| 290 | |||
| 291 | <dt><a href="client.html#module-eventmq.client">eventmq.client (module)</a> | 267 | <dt><a href="client.html#module-eventmq.client">eventmq.client (module)</a> |
| 292 | </dt> | 268 | </dt> |
| 293 | 269 | ||
| @@ -311,12 +287,12 @@ | |||
| 311 | <dt><a href="receiver.html#module-eventmq.receiver">eventmq.receiver (module)</a> | 287 | <dt><a href="receiver.html#module-eventmq.receiver">eventmq.receiver (module)</a> |
| 312 | </dt> | 288 | </dt> |
| 313 | 289 | ||
| 314 | </dl></td> | ||
| 315 | <td style="width: 33%" valign="top"><dl> | ||
| 316 | 290 | ||
| 317 | <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a> | 291 | <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a> |
| 318 | </dt> | 292 | </dt> |
| 319 | 293 | ||
| 294 | </dl></td> | ||
| 295 | <td style="width: 33%" valign="top"><dl> | ||
| 320 | 296 | ||
| 321 | <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a> | 297 | <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a> |
| 322 | </dt> | 298 | </dt> |
| @@ -378,7 +354,7 @@ | |||
| 378 | <table style="width: 100%" class="indextable genindextable"><tr> | 354 | <table style="width: 100%" class="indextable genindextable"><tr> |
| 379 | <td style="width: 33%" valign="top"><dl> | 355 | <td style="width: 33%" valign="top"><dl> |
| 380 | 356 | ||
| 381 | <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.IntervalIter">IntervalIter (class in eventmq.utils.timeutils)</a> | 357 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.incoming">incoming (eventmq.jobmanager.JobManager attribute)</a> |
| 382 | </dt> | 358 | </dt> |
| 383 | 359 | ||
| 384 | 360 | ||
| @@ -391,10 +367,6 @@ | |||
| 391 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.is_dead">is_dead() (eventmq.utils.classes.HeartbeatMixin method)</a> | 367 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.is_dead">is_dead() (eventmq.utils.classes.HeartbeatMixin method)</a> |
| 392 | </dt> | 368 | </dt> |
| 393 | 369 | ||
| 394 | |||
| 395 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.is_heartbeat_enabled">is_heartbeat_enabled (eventmq.utils.classes.EMQPService attribute)</a> | ||
| 396 | </dt> | ||
| 397 | |||
| 398 | </dl></td> | 370 | </dl></td> |
| 399 | </tr></table> | 371 | </tr></table> |
| 400 | 372 | ||
| @@ -474,7 +446,7 @@ | |||
| 474 | <table style="width: 100%" class="indextable genindextable"><tr> | 446 | <table style="width: 100%" class="indextable genindextable"><tr> |
| 475 | <td style="width: 33%" valign="top"><dl> | 447 | <td style="width: 33%" valign="top"><dl> |
| 476 | 448 | ||
| 477 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.on_ack">on_ack() (eventmq.utils.classes.EMQPService method)</a> | 449 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.on_ack">on_ack() (eventmq.jobmanager.JobManager method)</a> |
| 478 | </dt> | 450 | </dt> |
| 479 | 451 | ||
| 480 | 452 | ||
| @@ -491,12 +463,12 @@ | |||
| 491 | <dt><a href="router.html#eventmq.router.Router.on_inform">on_inform() (eventmq.router.Router method)</a> | 463 | <dt><a href="router.html#eventmq.router.Router.on_inform">on_inform() (eventmq.router.Router method)</a> |
| 492 | </dt> | 464 | </dt> |
| 493 | 465 | ||
| 466 | </dl></td> | ||
| 467 | <td style="width: 33%" valign="top"><dl> | ||
| 494 | 468 | ||
| 495 | <dt><a href="router.html#eventmq.router.Router.on_ready">on_ready() (eventmq.router.Router method)</a> | 469 | <dt><a href="router.html#eventmq.router.Router.on_ready">on_ready() (eventmq.router.Router method)</a> |
| 496 | </dt> | 470 | </dt> |
| 497 | 471 | ||
| 498 | </dl></td> | ||
| 499 | <td style="width: 33%" valign="top"><dl> | ||
| 500 | 472 | ||
| 501 | <dt><a href="router.html#eventmq.router.Router.on_receive_request">on_receive_request() (eventmq.router.Router method)</a> | 473 | <dt><a href="router.html#eventmq.router.Router.on_receive_request">on_receive_request() (eventmq.router.Router method)</a> |
| 502 | </dt> | 474 | </dt> |
| @@ -505,10 +477,6 @@ | |||
| 505 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.on_request">on_request() (eventmq.jobmanager.JobManager method)</a> | 477 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.on_request">on_request() (eventmq.jobmanager.JobManager method)</a> |
| 506 | </dt> | 478 | </dt> |
| 507 | 479 | ||
| 508 | |||
| 509 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.outgoing">outgoing (eventmq.jobmanager.JobManager attribute)</a> | ||
| 510 | </dt> | ||
| 511 | |||
| 512 | </dl></td> | 480 | </dl></td> |
| 513 | </tr></table> | 481 | </tr></table> |
| 514 | 482 | ||
| @@ -538,7 +506,7 @@ | |||
| 538 | </dt> | 506 | </dt> |
| 539 | 507 | ||
| 540 | 508 | ||
| 541 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.process_message">process_message() (eventmq.utils.classes.EMQPService method)</a> | 509 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.process_message">process_message() (eventmq.jobmanager.JobManager method)</a> |
| 542 | </dt> | 510 | </dt> |
| 543 | 511 | ||
| 544 | 512 | ||
| @@ -586,10 +554,6 @@ | |||
| 586 | </dt> | 554 | </dt> |
| 587 | 555 | ||
| 588 | 556 | ||
| 589 | <dt><a href="router.html#eventmq.router.Router.received_disconnect">received_disconnect (eventmq.router.Router attribute)</a> | ||
| 590 | </dt> | ||
| 591 | |||
| 592 | |||
| 593 | <dt><a href="receiver.html#eventmq.receiver.Receiver">Receiver (class in eventmq.receiver)</a> | 557 | <dt><a href="receiver.html#eventmq.receiver.Receiver">Receiver (class in eventmq.receiver)</a> |
| 594 | </dt> | 558 | </dt> |
| 595 | 559 | ||
| @@ -612,19 +576,13 @@ | |||
| 612 | </dt> | 576 | </dt> |
| 613 | 577 | ||
| 614 | 578 | ||
| 615 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.reset">reset() (eventmq.utils.classes.EMQPService method)</a> | 579 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.reset">reset() (eventmq.jobmanager.JobManager method)</a> |
| 616 | </dt> | 580 | </dt> |
| 617 | 581 | ||
| 618 | 582 | ||
| 619 | <dt><a href="router.html#eventmq.router.Router.reset_heartbeat_counters">reset_heartbeat_counters() (eventmq.router.Router method)</a> | 583 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.reset_heartbeat_counters">reset_heartbeat_counters() (eventmq.utils.classes.HeartbeatMixin method)</a> |
| 620 | </dt> | 584 | </dt> |
| 621 | 585 | ||
| 622 | <dd><dl> | ||
| 623 | |||
| 624 | <dt><a href="utils/classes.html#eventmq.utils.classes.HeartbeatMixin.reset_heartbeat_counters">(eventmq.utils.classes.HeartbeatMixin method)</a> | ||
| 625 | </dt> | ||
| 626 | |||
| 627 | </dl></dd> | ||
| 628 | 586 | ||
| 629 | <dt><a href="router.html#eventmq.router.Router">Router (class in eventmq.router)</a> | 587 | <dt><a href="router.html#eventmq.router.Router">Router (class in eventmq.router)</a> |
| 630 | </dt> | 588 | </dt> |
| @@ -640,18 +598,6 @@ | |||
| 640 | <table style="width: 100%" class="indextable genindextable"><tr> | 598 | <table style="width: 100%" class="indextable genindextable"><tr> |
| 641 | <td style="width: 33%" valign="top"><dl> | 599 | <td style="width: 33%" valign="top"><dl> |
| 642 | 600 | ||
| 643 | <dt><a href="client/messages.html#eventmq.client.messages.schedule">schedule() (in module eventmq.client.messages)</a> | ||
| 644 | </dt> | ||
| 645 | |||
| 646 | |||
| 647 | <dt><a href="router.html#eventmq.router.Router.scheduler_queue">scheduler_queue (eventmq.router.Router attribute)</a> | ||
| 648 | </dt> | ||
| 649 | |||
| 650 | |||
| 651 | <dt><a href="router.html#eventmq.router.Router.schedulers">schedulers (eventmq.router.Router attribute)</a> | ||
| 652 | </dt> | ||
| 653 | |||
| 654 | |||
| 655 | <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.seconds_until">seconds_until() (in module eventmq.utils.timeutils)</a> | 601 | <dt><a href="utils/timeutils.html#eventmq.utils.timeutils.seconds_until">seconds_until() (in module eventmq.utils.timeutils)</a> |
| 656 | </dt> | 602 | </dt> |
| 657 | 603 | ||
| @@ -681,12 +627,12 @@ | |||
| 681 | </dt> | 627 | </dt> |
| 682 | 628 | ||
| 683 | </dl></dd> | 629 | </dl></dd> |
| 684 | </dl></td> | ||
| 685 | <td style="width: 33%" valign="top"><dl> | ||
| 686 | 630 | ||
| 687 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.send_inform">send_inform() (eventmq.utils.classes.EMQPService method)</a> | 631 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_inform">send_inform() (eventmq.jobmanager.JobManager method)</a> |
| 688 | </dt> | 632 | </dt> |
| 689 | 633 | ||
| 634 | </dl></td> | ||
| 635 | <td style="width: 33%" valign="top"><dl> | ||
| 690 | 636 | ||
| 691 | <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.send_multipart">send_multipart() (eventmq.utils.classes.ZMQSendMixin method)</a> | 637 | <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.send_multipart">send_multipart() (eventmq.utils.classes.ZMQSendMixin method)</a> |
| 692 | </dt> | 638 | </dt> |
| @@ -700,14 +646,6 @@ | |||
| 700 | </dt> | 646 | </dt> |
| 701 | 647 | ||
| 702 | 648 | ||
| 703 | <dt><a href="client/messages.html#eventmq.client.messages.send_schedule_request">send_schedule_request() (in module eventmq.client.messages)</a> | ||
| 704 | </dt> | ||
| 705 | |||
| 706 | |||
| 707 | <dt><a href="router.html#eventmq.router.Router.send_schedulers_heartbeats">send_schedulers_heartbeats() (eventmq.router.Router method)</a> | ||
| 708 | </dt> | ||
| 709 | |||
| 710 | |||
| 711 | <dt><a href="router.html#eventmq.router.Router.send_workers_heartbeats">send_workers_heartbeats() (eventmq.router.Router method)</a> | 649 | <dt><a href="router.html#eventmq.router.Router.send_workers_heartbeats">send_workers_heartbeats() (eventmq.router.Router method)</a> |
| 712 | </dt> | 650 | </dt> |
| 713 | 651 | ||
| @@ -716,12 +654,12 @@ | |||
| 716 | </dt> | 654 | </dt> |
| 717 | 655 | ||
| 718 | 656 | ||
| 719 | <dt><a href="router.html#eventmq.router.Router.start">start() (eventmq.router.Router method)</a> | 657 | <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.start">start() (eventmq.jobmanager.JobManager method)</a> |
| 720 | </dt> | 658 | </dt> |
| 721 | 659 | ||
| 722 | <dd><dl> | 660 | <dd><dl> |
| 723 | 661 | ||
| 724 | <dt><a href="utils/classes.html#eventmq.utils.classes.EMQPService.start">(eventmq.utils.classes.EMQPService method)</a> | 662 | <dt><a href="router.html#eventmq.router.Router.start">(eventmq.router.Router method)</a> |
| 725 | </dt> | 663 | </dt> |
| 726 | 664 | ||
| 727 | </dl></dd> | 665 | </dl></dd> |
diff --git a/jobmanager.html b/jobmanager.html index 1553d9e..2c81041 100644 --- a/jobmanager.html +++ b/jobmanager.html | |||
| @@ -183,6 +183,14 @@ this point the manager should wait for a slot to free up.</p> | |||
| 183 | number changes as workers become busy with jobs</p> | 183 | number changes as workers become busy with jobs</p> |
| 184 | </dd></dl> | 184 | </dd></dl> |
| 185 | 185 | ||
| 186 | <dl class="attribute"> | ||
| 187 | <dt id="eventmq.jobmanager.JobManager.incoming"> | ||
| 188 | <code class="descname">incoming</code><em class="property"> = None</em><a class="headerlink" href="#eventmq.jobmanager.JobManager.incoming" title="Permalink to this definition">¶</a></dt> | ||
| 189 | <dd><p>JobManager starts out by INFORMing the router of it’s existance, | ||
| 190 | then telling the router that it is READY. The reply will be the unit | ||
| 191 | of work.</p> | ||
| 192 | </dd></dl> | ||
| 193 | |||
| 186 | <dl class="method"> | 194 | <dl class="method"> |
| 187 | <dt id="eventmq.jobmanager.JobManager.jobmanager_main"> | 195 | <dt id="eventmq.jobmanager.JobManager.jobmanager_main"> |
| 188 | <code class="descname">jobmanager_main</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.jobmanager_main" title="Permalink to this definition">¶</a></dt> | 196 | <code class="descname">jobmanager_main</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.jobmanager_main" title="Permalink to this definition">¶</a></dt> |
| @@ -197,6 +205,12 @@ referring to the logs.</p> | |||
| 197 | </dd></dl> | 205 | </dd></dl> |
| 198 | 206 | ||
| 199 | <dl class="method"> | 207 | <dl class="method"> |
| 208 | <dt id="eventmq.jobmanager.JobManager.on_ack"> | ||
| 209 | <code class="descname">on_ack</code><span class="sig-paren">(</span><em>msgid</em>, <em>ackd_msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_ack" title="Permalink to this definition">¶</a></dt> | ||
| 210 | <dd><p>Sets <code class="xref py py-attr docutils literal"><span class="pre">awaiting_ack</span></code> to False</p> | ||
| 211 | </dd></dl> | ||
| 212 | |||
| 213 | <dl class="method"> | ||
| 200 | <dt id="eventmq.jobmanager.JobManager.on_heartbeat"> | 214 | <dt id="eventmq.jobmanager.JobManager.on_heartbeat"> |
| 201 | <code class="descname">on_heartbeat</code><span class="sig-paren">(</span><em>msgid</em>, <em>message</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_heartbeat" title="Permalink to this definition">¶</a></dt> | 215 | <code class="descname">on_heartbeat</code><span class="sig-paren">(</span><em>msgid</em>, <em>message</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_heartbeat" title="Permalink to this definition">¶</a></dt> |
| 202 | <dd><p>a placeholder for a noop command. The actual ‘logic’ for HEARTBEAT is | 216 | <dd><p>a placeholder for a noop command. The actual ‘logic’ for HEARTBEAT is |
| @@ -236,12 +250,31 @@ HEARTBEAT</p> | |||
| 236 | </dl> | 250 | </dl> |
| 237 | </dd></dl> | 251 | </dd></dl> |
| 238 | 252 | ||
| 239 | <dl class="attribute"> | 253 | <dl class="method"> |
| 240 | <dt id="eventmq.jobmanager.JobManager.outgoing"> | 254 | <dt id="eventmq.jobmanager.JobManager.process_message"> |
| 241 | <code class="descname">outgoing</code><em class="property"> = None</em><a class="headerlink" href="#eventmq.jobmanager.JobManager.outgoing" title="Permalink to this definition">¶</a></dt> | 255 | <code class="descname">process_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.process_message" title="Permalink to this definition">¶</a></dt> |
| 242 | <dd><p>JobManager starts out by INFORMing the router of it’s existance, | 256 | <dd><p>Processes a message</p> |
| 243 | then telling the router that it is READY. The reply will be the unit | 257 | <table class="docutils field-list" frame="void" rules="none"> |
| 244 | of work.</p> | 258 | <col class="field-name" /> |
| 259 | <col class="field-body" /> | ||
| 260 | <tbody valign="top"> | ||
| 261 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>msg</strong> – The message received from the socket to parse and process. | ||
| 262 | Processing takes form of calling an <cite>on_COMMAND</cite> method.</td> | ||
| 263 | </tr> | ||
| 264 | </tbody> | ||
| 265 | </table> | ||
| 266 | </dd></dl> | ||
| 267 | |||
| 268 | <dl class="method"> | ||
| 269 | <dt id="eventmq.jobmanager.JobManager.reset"> | ||
| 270 | <code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.reset" title="Permalink to this definition">¶</a></dt> | ||
| 271 | <dd><p>Resets the current connection by closing and reopening the socket</p> | ||
| 272 | </dd></dl> | ||
| 273 | |||
| 274 | <dl class="method"> | ||
| 275 | <dt id="eventmq.jobmanager.JobManager.send_inform"> | ||
| 276 | <code class="descname">send_inform</code><span class="sig-paren">(</span><em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.send_inform" title="Permalink to this definition">¶</a></dt> | ||
| 277 | <dd><p>Send an INFORM command</p> | ||
| 245 | </dd></dl> | 278 | </dd></dl> |
| 246 | 279 | ||
| 247 | <dl class="method"> | 280 | <dl class="method"> |
| @@ -251,6 +284,20 @@ of work.</p> | |||
| 251 | for another REQUEST message.</p> | 284 | for another REQUEST message.</p> |
| 252 | </dd></dl> | 285 | </dd></dl> |
| 253 | 286 | ||
| 287 | <dl class="method"> | ||
| 288 | <dt id="eventmq.jobmanager.JobManager.start"> | ||
| 289 | <code class="descname">start</code><span class="sig-paren">(</span><em>addr='tcp://127.0.0.1:47291'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.start" title="Permalink to this definition">¶</a></dt> | ||
| 290 | <dd><p>Connect to <cite>addr</cite> and begin listening for job requests</p> | ||
| 291 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 292 | <col class="field-name" /> | ||
| 293 | <col class="field-body" /> | ||
| 294 | <tbody valign="top"> | ||
| 295 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>addr</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – connection string to connect to</td> | ||
| 296 | </tr> | ||
| 297 | </tbody> | ||
| 298 | </table> | ||
| 299 | </dd></dl> | ||
| 300 | |||
| 254 | </dd></dl> | 301 | </dd></dl> |
| 255 | 302 | ||
| 256 | </div> | 303 | </div> |
diff --git a/objects.inv b/objects.inv index 5b59fb8..855bf43 100644 --- a/objects.inv +++ b/objects.inv | |||
| Binary files differ | |||
diff --git a/poller.html b/poller.html index 9384cd6..8964feb 100644 --- a/poller.html +++ b/poller.html | |||
| @@ -84,6 +84,7 @@ | |||
| 84 | 84 | ||
| 85 | <ul class="current"> | 85 | <ul class="current"> |
| 86 | <li class="toctree-l1 current"><a class="reference internal" href="api.html">API Documentation</a><ul class="current"> | 86 | <li class="toctree-l1 current"><a class="reference internal" href="api.html">API Documentation</a><ul class="current"> |
| 87 | <li class="toctree-l2"><a class="reference internal" href="client.html"><code class="docutils literal"><span class="pre">client</span></code> – Client Utilities</a></li> | ||
| 87 | <li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> – Exceptions</a></li> | 88 | <li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> – Exceptions</a></li> |
| 88 | <li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> – Job Manager</a></li> | 89 | <li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> – Job Manager</a></li> |
| 89 | <li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">poller</span></code> – Poller</a></li> | 90 | <li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">poller</span></code> – Poller</a></li> |
diff --git a/protocol.html b/protocol.html index 221bae0..d1d24f4 100644 --- a/protocol.html +++ b/protocol.html | |||
| @@ -167,8 +167,8 @@ EventMQ Protocol Specification | |||
| 167 | </div> | 167 | </div> |
| 168 | <div class="section" id="license"> | 168 | <div class="section" id="license"> |
| 169 | <h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1> | 169 | <h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1> |
| 170 | <p>This Specification is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p> | 170 | <p>This Specification is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.</p> |
| 171 | <p>This Specification is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> | 171 | <p>This Specification is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</p> |
| 172 | </div> | 172 | </div> |
| 173 | <div class="section" id="language"> | 173 | <div class="section" id="language"> |
| 174 | <h1>Language<a class="headerlink" href="#language" title="Permalink to this headline">¶</a></h1> | 174 | <h1>Language<a class="headerlink" href="#language" title="Permalink to this headline">¶</a></h1> |
diff --git a/router.html b/router.html index 0604f89..5166889 100644 --- a/router.html +++ b/router.html | |||
| @@ -149,20 +149,6 @@ | |||
| 149 | <em class="property">class </em><code class="descclassname">eventmq.router.</code><code class="descname">Router</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router" title="Permalink to this definition">¶</a></dt> | 149 | <em class="property">class </em><code class="descclassname">eventmq.router.</code><code class="descname">Router</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router" title="Permalink to this definition">¶</a></dt> |
| 150 | <dd><p>A simple router of messages</p> | 150 | <dd><p>A simple router of messages</p> |
| 151 | <dl class="method"> | 151 | <dl class="method"> |
| 152 | <dt id="eventmq.router.Router.add_scheduler"> | ||
| 153 | <code class="descname">add_scheduler</code><span class="sig-paren">(</span><em>scheduler_id</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.add_scheduler" title="Permalink to this definition">¶</a></dt> | ||
| 154 | <dd><p>Adds a scheduler to the queue to receive SCHEDULE commands</p> | ||
| 155 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 156 | <col class="field-name" /> | ||
| 157 | <col class="field-body" /> | ||
| 158 | <tbody valign="top"> | ||
| 159 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>scheduler_id</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – unique id of the scheduler to add</td> | ||
| 160 | </tr> | ||
| 161 | </tbody> | ||
| 162 | </table> | ||
| 163 | </dd></dl> | ||
| 164 | |||
| 165 | <dl class="method"> | ||
| 166 | <dt id="eventmq.router.Router.add_worker"> | 152 | <dt id="eventmq.router.Router.add_worker"> |
| 167 | <code class="descname">add_worker</code><span class="sig-paren">(</span><em>worker_id</em>, <em>queues=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.add_worker" title="Permalink to this definition">¶</a></dt> | 153 | <code class="descname">add_worker</code><span class="sig-paren">(</span><em>worker_id</em>, <em>queues=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.add_worker" title="Permalink to this definition">¶</a></dt> |
| 168 | <dd><p>Adds a worker to worker queues</p> | 154 | <dd><p>Adds a worker to worker queues</p> |
| @@ -171,7 +157,7 @@ | |||
| 171 | <col class="field-body" /> | 157 | <col class="field-body" /> |
| 172 | <tbody valign="top"> | 158 | <tbody valign="top"> |
| 173 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> | 159 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> |
| 174 | <li><strong>worker_id</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – unique id of the worker to add</li> | 160 | <li><strong>worker_id</strong> – unique id of the worker to add</li> |
| 175 | <li><strong>queues</strong> – queue or queues this worker should be a member of</li> | 161 | <li><strong>queues</strong> – queue or queues this worker should be a member of</li> |
| 176 | </ul> | 162 | </ul> |
| 177 | </td> | 163 | </td> |
| @@ -181,13 +167,6 @@ | |||
| 181 | </dd></dl> | 167 | </dd></dl> |
| 182 | 168 | ||
| 183 | <dl class="method"> | 169 | <dl class="method"> |
| 184 | <dt id="eventmq.router.Router.clean_up_dead_schedulers"> | ||
| 185 | <code class="descname">clean_up_dead_schedulers</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.clean_up_dead_schedulers" title="Permalink to this definition">¶</a></dt> | ||
| 186 | <dd><p>Loops through the list of schedulers and remove any schedulers who | ||
| 187 | the router hasn’t received a heartbeat in HEARTBEAT_TIMEOUT</p> | ||
| 188 | </dd></dl> | ||
| 189 | |||
| 190 | <dl class="method"> | ||
| 191 | <dt id="eventmq.router.Router.clean_up_dead_workers"> | 170 | <dt id="eventmq.router.Router.clean_up_dead_workers"> |
| 192 | <code class="descname">clean_up_dead_workers</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.clean_up_dead_workers" title="Permalink to this definition">¶</a></dt> | 171 | <code class="descname">clean_up_dead_workers</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.clean_up_dead_workers" title="Permalink to this definition">¶</a></dt> |
| 193 | <dd><p>Loops through the worker queues and removes any workers who haven’t | 172 | <dd><p>Loops through the worker queues and removes any workers who haven’t |
| @@ -231,7 +210,10 @@ and announces itself.</p> | |||
| 231 | <dl class="method"> | 210 | <dl class="method"> |
| 232 | <dt id="eventmq.router.Router.on_receive_request"> | 211 | <dt id="eventmq.router.Router.on_receive_request"> |
| 233 | <code class="descname">on_receive_request</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_receive_request" title="Permalink to this definition">¶</a></dt> | 212 | <code class="descname">on_receive_request</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_receive_request" title="Permalink to this definition">¶</a></dt> |
| 234 | <dd><table class="docutils field-list" frame="void" rules="none"> | 213 | <dd><p>This function is called when a message comes in from the client socket. |
| 214 | It then calls <cite>on_command</cite>. If <cite>on_command</cite> isn’t found, then a | ||
| 215 | warning is created.</p> | ||
| 216 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 235 | <col class="field-name" /> | 217 | <col class="field-name" /> |
| 236 | <col class="field-body" /> | 218 | <col class="field-body" /> |
| 237 | <tbody valign="top"> | 219 | <tbody valign="top"> |
| @@ -274,12 +256,6 @@ worker slot, so you may see duplicate addresses.</p> | |||
| 274 | <p>{‘default’: [‘w1’, ‘w2’, ‘w1’, ‘w4’]}</p> | 256 | <p>{‘default’: [‘w1’, ‘w2’, ‘w1’, ‘w4’]}</p> |
| 275 | </dd></dl> | 257 | </dd></dl> |
| 276 | 258 | ||
| 277 | <dl class="attribute"> | ||
| 278 | <dt id="eventmq.router.Router.received_disconnect"> | ||
| 279 | <code class="descname">received_disconnect</code><em class="property"> = None</em><a class="headerlink" href="#eventmq.router.Router.received_disconnect" title="Permalink to this definition">¶</a></dt> | ||
| 280 | <dd><p>Set to True when the router should die.</p> | ||
| 281 | </dd></dl> | ||
| 282 | |||
| 283 | <dl class="method"> | 259 | <dl class="method"> |
| 284 | <dt id="eventmq.router.Router.requeue_worker"> | 260 | <dt id="eventmq.router.Router.requeue_worker"> |
| 285 | <code class="descname">requeue_worker</code><span class="sig-paren">(</span><em>worker_id</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.requeue_worker" title="Permalink to this definition">¶</a></dt> | 261 | <code class="descname">requeue_worker</code><span class="sig-paren">(</span><em>worker_id</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.requeue_worker" title="Permalink to this definition">¶</a></dt> |
| @@ -291,39 +267,11 @@ worker slot, so you may see duplicate addresses.</p> | |||
| 291 | </dd></dl> | 267 | </dd></dl> |
| 292 | 268 | ||
| 293 | <dl class="method"> | 269 | <dl class="method"> |
| 294 | <dt id="eventmq.router.Router.reset_heartbeat_counters"> | ||
| 295 | <code class="descname">reset_heartbeat_counters</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.reset_heartbeat_counters" title="Permalink to this definition">¶</a></dt> | ||
| 296 | <dd><p>Reset all the counters for heartbeats back to 0</p> | ||
| 297 | </dd></dl> | ||
| 298 | |||
| 299 | <dl class="method"> | ||
| 300 | <dt id="eventmq.router.Router.router_main"> | 270 | <dt id="eventmq.router.Router.router_main"> |
| 301 | <code class="descname">router_main</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.router_main" title="Permalink to this definition">¶</a></dt> | 271 | <code class="descname">router_main</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.router_main" title="Permalink to this definition">¶</a></dt> |
| 302 | <dd><p>Kick off router with logging and settings import</p> | 272 | <dd><p>Kick off router with logging and settings import</p> |
| 303 | </dd></dl> | 273 | </dd></dl> |
| 304 | 274 | ||
| 305 | <dl class="attribute"> | ||
| 306 | <dt id="eventmq.router.Router.scheduler_queue"> | ||
| 307 | <code class="descname">scheduler_queue</code><em class="property"> = None</em><a class="headerlink" href="#eventmq.router.Router.scheduler_queue" title="Permalink to this definition">¶</a></dt> | ||
| 308 | <dd><p><em>Queue for schedulers to use</em></p> | ||
| 309 | </dd></dl> | ||
| 310 | |||
| 311 | <dl class="attribute"> | ||
| 312 | <dt id="eventmq.router.Router.schedulers"> | ||
| 313 | <code class="descname">schedulers</code><em class="property"> = None</em><a class="headerlink" href="#eventmq.router.Router.schedulers" title="Permalink to this definition">¶</a></dt> | ||
| 314 | <dd><p>Scheduler clients. Clients are able to send SCHEDULE commands that | ||
| 315 | need to be routed to a scheduler, which will keep track of time and | ||
| 316 | run the job. | ||
| 317 | Contains dictionaries:</p> | ||
| 318 | <blockquote> | ||
| 319 | <div><dl class="docutils"> | ||
| 320 | <dt>self.schedulers[<scheduler_zmq_id>] = {</dt> | ||
| 321 | <dd>‘hb’: <last_recv_heartbeat>,</dd> | ||
| 322 | </dl> | ||
| 323 | <p>}</p> | ||
| 324 | </div></blockquote> | ||
| 325 | </dd></dl> | ||
| 326 | |||
| 327 | <dl class="method"> | 275 | <dl class="method"> |
| 328 | <dt id="eventmq.router.Router.send_ack"> | 276 | <dt id="eventmq.router.Router.send_ack"> |
| 329 | <code class="descname">send_ack</code><span class="sig-paren">(</span><em>socket</em>, <em>recipient</em>, <em>msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_ack" title="Permalink to this definition">¶</a></dt> | 277 | <code class="descname">send_ack</code><span class="sig-paren">(</span><em>socket</em>, <em>recipient</em>, <em>msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_ack" title="Permalink to this definition">¶</a></dt> |
| @@ -363,20 +311,14 @@ needed when building messages</p> | |||
| 363 | </dd></dl> | 311 | </dd></dl> |
| 364 | 312 | ||
| 365 | <dl class="method"> | 313 | <dl class="method"> |
| 366 | <dt id="eventmq.router.Router.send_schedulers_heartbeats"> | ||
| 367 | <code class="descname">send_schedulers_heartbeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_schedulers_heartbeats" title="Permalink to this definition">¶</a></dt> | ||
| 368 | <dd><p>Send HEARTBEATs to all registered schedulers</p> | ||
| 369 | </dd></dl> | ||
| 370 | |||
| 371 | <dl class="method"> | ||
| 372 | <dt id="eventmq.router.Router.send_workers_heartbeats"> | 314 | <dt id="eventmq.router.Router.send_workers_heartbeats"> |
| 373 | <code class="descname">send_workers_heartbeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_workers_heartbeats" title="Permalink to this definition">¶</a></dt> | 315 | <code class="descname">send_workers_heartbeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_workers_heartbeats" title="Permalink to this definition">¶</a></dt> |
| 374 | <dd><p>Send HEARTBEATs to all registered workers.</p> | 316 | <dd><p>Send heartbeats to all registered workers.</p> |
| 375 | </dd></dl> | 317 | </dd></dl> |
| 376 | 318 | ||
| 377 | <dl class="method"> | 319 | <dl class="method"> |
| 378 | <dt id="eventmq.router.Router.start"> | 320 | <dt id="eventmq.router.Router.start"> |
| 379 | <code class="descname">start</code><span class="sig-paren">(</span><em>frontend_addr='tcp://127.0.0.1:47291'</em>, <em>backend_addr='tcp://127.0.0.1:47290'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.start" title="Permalink to this definition">¶</a></dt> | 321 | <code class="descname">start</code><span class="sig-paren">(</span><em>frontend_addr='tcp://127.0.0.1:47290'</em>, <em>backend_addr='tcp://127.0.0.1:47291'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.start" title="Permalink to this definition">¶</a></dt> |
| 380 | <dd><p>Begin listening for connections on the provided connection strings</p> | 322 | <dd><p>Begin listening for connections on the provided connection strings</p> |
| 381 | <table class="docutils field-list" frame="void" rules="none"> | 323 | <table class="docutils field-list" frame="void" rules="none"> |
| 382 | <col class="field-name" /> | 324 | <col class="field-name" /> |
diff --git a/searchindex.js b/searchindex.js index 7e31518..935688d 100644 --- a/searchindex.js +++ b/searchindex.js | |||
| @@ -1 +1 @@ | |||
| Search.setIndex({envversion:46,filenames:["api","client","client/messages","contributing","exceptions","getting_started","glossary","index","jobmanager","poller","protocol","receiver","router","sender","style","utils","utils/classes","utils/messages","utils/timeutils"],objects:{"eventmq.client":{messages:[2,0,0,"-"]},"eventmq.client.messages":{build_module_path:[2,4,1,""],defer_job:[2,4,1,""],job:[2,4,1,""],schedule:[2,4,1,""],send_request:[2,4,1,""],send_schedule_request:[2,4,1,""]},"eventmq.exceptions":{EventMQError:[4,5,1,""],InvalidMessageError:[4,5,1,""],MessageError:[4,5,1,""],PeerGoneAwayError:[4,5,1,""]},"eventmq.jobmanager":{JobManager:[8,3,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[8,2,1,""],active_jobs:[8,1,1,""],available_workers:[8,1,1,""],jobmanager_main:[8,2,1,""],name:[8,1,1,""],on_heartbeat:[8,2,1,""],on_request:[8,2,1,""],outgoing:[8,1,1,""],send_ready:[8,2,1,""]},"eventmq.poller":{Poller:[9,3,1,""]},"eventmq.poller.Poller":{"__init__":[9,2,1,""],poll:[9,2,1,""],register:[9,2,1,""],unregister:[9,2,1,""]},"eventmq.receiver":{Receiver:[11,3,1,""]},"eventmq.receiver.Receiver":{"__init__":[11,2,1,""],connect:[11,2,1,""],listen:[11,2,1,""],name:[11,1,1,""],ready:[11,1,1,""],unbind:[11,2,1,""],zcontext:[11,1,1,""],zsocket:[11,1,1,""]},"eventmq.router":{Router:[12,3,1,""]},"eventmq.router.Router":{add_scheduler:[12,2,1,""],add_worker:[12,2,1,""],clean_up_dead_schedulers:[12,2,1,""],clean_up_dead_workers:[12,2,1,""],on_heartbeat:[12,2,1,""],on_inform:[12,2,1,""],on_ready:[12,2,1,""],on_receive_request:[12,2,1,""],process_worker_message:[12,2,1,""],queue_message:[12,2,1,""],queues:[12,1,1,""],received_disconnect:[12,1,1,""],requeue_worker:[12,2,1,""],reset_heartbeat_counters:[12,2,1,""],router_main:[12,2,1,""],scheduler_queue:[12,1,1,""],schedulers:[12,1,1,""],send_ack:[12,2,1,""],send_heartbeat:[12,2,1,""],send_schedulers_heartbeats:[12,2,1,""],send_workers_heartbeats:[12,2,1,""],start:[12,2,1,""],waiting_messages:[12,1,1,""],workers:[12,1,1,""]},"eventmq.sender":{Sender:[13,3,1,""]},"eventmq.sender.Sender":{"__init__":[13,2,1,""],connect:[13,2,1,""],listen:[13,2,1,""],name:[13,1,1,""],ready:[13,1,1,""],rebuild:[13,2,1,""],unbind:[13,2,1,""],zcontext:[13,1,1,""],zsocket:[13,1,1,""]},"eventmq.utils":{classes:[16,0,0,"-"],messages:[17,0,0,"-"],random_characters:[15,4,1,""],timeutils:[18,0,0,"-"]},"eventmq.utils.classes":{EMQPService:[16,3,1,""],HeartbeatMixin:[16,3,1,""],ZMQReceiveMixin:[16,3,1,""],ZMQSendMixin:[16,3,1,""]},"eventmq.utils.classes.EMQPService":{"__weakref__":[16,1,1,""],is_heartbeat_enabled:[16,1,1,""],on_ack:[16,2,1,""],process_message:[16,2,1,""],reset:[16,2,1,""],send_inform:[16,2,1,""],start:[16,2,1,""]},"eventmq.utils.classes.HeartbeatMixin":{"__init__":[16,2,1,""],"__weakref__":[16,1,1,""],is_dead:[16,2,1,""],reset_heartbeat_counters:[16,2,1,""],send_heartbeat:[16,2,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{"__weakref__":[16,1,1,""],recv:[16,2,1,""],recv_multipart:[16,2,1,""]},"eventmq.utils.classes.ZMQSendMixin":{"__weakref__":[16,1,1,""],send:[16,2,1,""],send_multipart:[16,2,1,""]},"eventmq.utils.messages":{fwd_emqp_router_message:[17,4,1,""],generate_msgid:[17,4,1,""],parse_message:[17,4,1,""],parse_router_message:[17,4,1,""],send_emqp_message:[17,4,1,""],send_emqp_router_message:[17,4,1,""]},"eventmq.utils.timeutils":{IntervalIter:[18,3,1,""],monotonic:[18,4,1,""],seconds_until:[18,4,1,""],timestamp:[18,4,1,""]},"eventmq.utils.timeutils.IntervalIter":{"__init__":[18,2,1,""],"__weakref__":[18,1,1,""]},eventmq:{client:[1,0,0,"-"],exceptions:[4,0,0,"-"],jobmanager:[8,0,0,"-"],poller:[9,0,0,"-"],receiver:[11,0,0,"-"],router:[12,0,0,"-"],sender:[13,0,0,"-"],utils:[15,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","method","Python method"],"3":["py","class","Python class"],"4":["py","function","Python function"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:method","3":"py:class","4":"py:function","5":"py:exception"},terms:{"0mq":[10,16],"5min":18,"__init__":[8,9,11,13,16,18],"__weakref__":[16,18],"_empty_":10,"_headers_":10,"_issu":[],"_msg_":10,"_msgid_":10,"_queue_name_":10,"_recipient_id":16,"_sourc":[],"_topic_name_":10,"_unix_ts_":10,"abstract":10,"case":[10,18],"class":[],"default":[2,8,10,11,12,13,16],"float":[16,18],"function":2,"import":[2,3,8,12],"int":[2,9,18],"long":[9,16],"new":12,"public":10,"return":[2,3,9,11,13,15,16,17,18],"true":[2,10,11,12,13,16],"while":10,abl:12,about:[8,10,12],absolut:3,accept:[10,16],account:[12,17],ack:[10,12],ackd_msgid:16,acknowledg:[10,12],act:[1,10],activ:8,active_job:8,actual:[8,12],add:12,add_schedul:12,add_work:12,addr:[11,13,16],address:[],after:10,agre:10,all:[2,4,8,10,11,12,13,16],allow:10,alon:2,alpha:10,alreadi:12,also:16,alwai:[2,8],and_data:17,ani:[2,10,12],announc:12,anoth:[8,12],anyth:6,api:[],appear:9,appened:12,applic:[2,10],architectur:[],aren:[],arg2:2,arg3:2,arg:[2,8,9,11,12,13,16],argument:16,arithmet:18,around:[],assum:18,attempt:4,attr:9,automat:16,avail:[8,12],available_work:8,awaiting_ack:16,back:[10,12,16],backend_addr:12,base:[4,9],basi:10,becaus:12,becom:8,been:[2,16],befor:[2,9,10],begin:[12,16],belong:[10,12],below:10,best:2,between:[2,10],bin:5,block:2,bool:[2,11,13,16],boot:18,both:[9,10],box:2,broadcast:10,broker:[6,10,16],buffer:12,build:[2,12,13],build_module_path:2,built:10,bulid:11,busi:8,calcul:18,call:[9,12,16],callabl:[2,8,11],can:[1,2,10,12,16,17],certain:16,chang:[8,10],charact:15,check:[2,11,13,16],class_arg:[2,8],class_kwarg:[2,8],clean_up_dead_schedul:12,clean_up_dead_work:12,client:[],clock:18,close:[16,18],code:[3,7,16],colon:2,column:14,com:[],come:[2,12],comma:10,command:[2,5,8,10,12,16,17],complet:10,compon:10,configur:2,connction:[11,13],connect:[10,11,12,13,16,17],consist:10,contact:4,contain:[1,10,12,15],content:[],context:[11,13],convers:10,convienc:[9,16],correctli:12,count:[8,10,12,18],counter:[12,16],cpu:2,creat:[12,13,15],cross:14,csv:10,current:[11,13,16],custom:12,data:[12,17],deal:15,dealer:13,death:16,debug:10,decor:2,decrypt:2,def:[],defeat:10,defer:2,defer_job:2,defin:[2,8,10,11,13,16,18],deliv:10,denot:2,describ:10,descript:10,detail:[2,10],detect:10,determin:10,devic:[6,9,16,17],dialog:10,dict:[2,8,9],dictionari:[9,10,12],did:2,die:12,differ:3,directli:[9,16],disabl:2,disconnect:[10,11],distribut:10,doe:16,doesn:9,dot:2,down:18,dst:18,duplic:12,dure:13,effort:2,either:[10,16],els:[3,10],empti:10,emqp:[],emqpservic:16,enabl:[2,16],encount:[2,4],end:[2,16],enderlab:[],ensur:[2,8,10],entri:12,error:2,even:10,event:[9,16],eventloop:8,eventmqerror:4,everi:8,exampl:[12,16,18],except:[],execut:[2,8,10,18],exist:[4,8],explicitli:16,expos:8,extra:10,fail:[2,10],failur:2,fair:10,fals:[2,10,11,13,16],few:3,field:10,file:14,find:16,finish:[10,12],first:[10,16],fit:10,flag:[2,9],follow:[2,5,10,16],form:16,format:[2,8,10,17],forward:17,found:12,foundat:10,frame:[],free:[8,10],from:[4,9,10,11,12,13,16,18],frontend_addr:12,func:[2,8],fwd_emqp_router_messag:17,gener:[8,9,10,11,13,17],generate_msgid:17,github:[],give:2,given:12,gmtime:[],gnu:10,goal:[],good:16,guarante:[2,10],guarente:2,hand:15,handl:[8,10,12],happen:[2,9,12,13],hasn:12,have:[2,8,16,17],haven:12,header:[],heartbeat:[],heartbeat_timeout:12,heartbeati:16,heartbeatmixin:16,heavi:10,help:6,helper:16,here:[10,12],home:5,hope:10,how:[2,9],html:10,http:10,ident:10,identifi:12,ietf:10,ignor:[10,16],immediatli:2,implement:[10,16],impli:10,includ:[2,10],incom:[],index:7,inform:[8,10,12,16],inform_typ:[],inherit:4,initi:2,insert:[10,16],instal:[3,5],instanc:8,instanti:[2,8],interpret:10,interv:[2,10,18],interval_min:[],interval_sec:[2,18],intervalit:18,intes:2,invalidmessageerror:4,is_dead:16,is_heartbeat_en:16,isn:[12,16],issu:[3,7,10],item:12,iter:9,itself:12,job:[],jobmanag:[],jobmanager_main:8,keep:12,kei:[9,10,12],kick:[8,12],know:[2,8,12],kwarg2:2,kwarg:[2,8,9,11,12,13,16],languag:[],last:[2,12],last_recv_heartbeat:12,later:[10,12],least:10,leav:10,length:15,let:10,lib:5,licens:[],like:[8,15,16],list:[2,8,10,12,16,18],listen:[11,12,13,16],locat:2,log:[2,8,12],logic:[8,12],longer:4,look:16,loop:[9,12,16],lower:12,mai:[2,10,12,16],main:8,make:15,malform:4,manag:[],mani:[2,10,13],manual:10,master:10,match:16,member:12,memebership:12,merchant:10,mess:18,messag:[],message_bodi:17,message_id:17,messageerror:4,met:16,meta:[12,17],method:[2,8,9,12,16],minut:2,mode:[],modifi:10,modul:[1,2,7,8,15],monoton:[12,16,18],more:[5,10,15,16],most:8,msg:[8,10,12,16,17],msg_id:[],msgid:[8,12,16],multipart:[10,16],must:[10,16],name:[2,8,10,11,12,13],need:[12,13],never:18,next:[9,18],none:[2,8,11,12,13,16,17],noop:8,note:[8,11,13],now:16,number:[8,18],numer:18,object:[9,16,18],occur:16,off:[8,12],on_ack:16,on_command:[12,16],on_emqp_command:16,on_heartbeat:[8,12],on_inform:12,on_readi:12,on_receive_repli:[],on_receive_request:12,on_recv:11,on_request:8,on_schedul:16,onc:[5,10],onli:[],onlin:12,option:[2,8,10,11,13,17],org:10,orient:10,origin:10,other:[2,10],otherwis:[2,8,11,13,16],out:[8,16],outgo:[8,16],overwhelm:2,own:16,packag:5,page:7,param:2,paramet:[2,8,9,11,12,13,16,17,18],pars:[16,17],parse_messag:17,parse_router_messag:17,part:[10,17],particular:[10,13],pass:[2,10,11],path:[2,5,8],payload:17,peer:[4,10,16],peergoneawayerror:4,per:12,pictur:10,pip:5,placehold:[8,12],point:8,poll:9,poller:[],pollin:9,pollout:9,pool:[10,12],pop:12,portion:8,possibl:3,practic:16,prefix:17,prepend:10,pretti:10,problem:4,process:[10,12,13,16],process_messag:[8,16],process_worker_messag:12,prop:[],properti:[11,13,16],protocol:[],protocol_vers:16,provid:[12,16],pub:10,publish:10,purpos:10,py2:18,py3:18,python2:5,queu:2,queue:[2,10,12,16],queue_messag:12,quick:2,rais:[2,4,11,13,16,17],random:[15,17],random_charact:15,raw:16,raw_messag:[],readi:[8,10,11,12,13],rebuild:13,receiv:[],received_disconnect:12,recent:[10,12],reciev:[],recip:[],recipi:[12,16,17],recipient_id:17,recommend:10,reconnect:13,recv:16,recv_multipart:16,redistribut:10,refer:[8,16,18],regist:[9,12],regular:10,rel:3,reliabl:10,remain:9,remot:16,remov:[10,12],reopen:16,rep:11,repli:[2,8,10,17],reply_request:2,repres:18,req:13,request:[],requeue_work:12,requir:[5,10],requri:[],reset:[12,16],reset_heartbeat_count:[12,16],resourc:[8,10],respond:[10,12,16],respons:[2,8,11,12,13],restart:[10,13],retri:[2,10],retry_count:2,rfc2119:10,rfc:10,robin:10,roughli:13,round:10,rout:[10,12],router:[],router_main:12,run:[2,5,8,10,12,16],sake:18,same:13,schedul:[],scheduler_id:12,scheduler_queu:12,scheduler_zmq_id:12,search:7,second:18,seconds_until:18,see:[9,10,12,16],self:[8,12,13,16],send:[2,4,8,10,12,13,16,17],send_ack:12,send_emqp_messag:17,send_emqp_router_messag:17,send_heartbeat:[12,16],send_inform:16,send_messag:[],send_multipart:16,send_raw:[],send_readi:8,send_request:2,send_schedule_request:2,send_schedulers_heartbeat:12,send_workers_heartbeat:12,sender:[],sender_id:17,sent:[10,12,16],seper:[2,10],serv:10,server:[8,10],servic:[10,16],service_typ:16,set:[2,8,9,10,12,13,16],shall:10,shalt:14,should:[2,4,8,9,10,11,12,13,16],shown:10,simpl:[5,12,15],sinc:18,singl:10,site:5,skip:[13,16],skip_zmqstream:13,slot:[8,12],socket:[2,9,10,11,12,13,16,17],softwar:10,some:[2,8,15,16,17],someon:10,someth:[2,13,16,18],somewher:3,sourc:[3,7],spawn:8,specif:[],specifi:[10,15,16],start:[],start_valu:18,state:16,statu:10,stop:10,store:[8,12],str:[2,8,11,12,13,15,16,17],string:[2,10,11,12,13,16,17],structur:4,sub:10,subclass:4,subcmd:8,subcommand:[2,8],subject:10,subset:10,subtract:18,success:10,successfulli:2,system:[3,5],take:[12,13,16,17],task:[2,8],tcp:12,tell:8,term:10,than:5,thei:[2,16],them:11,thi:[1,2,4,5,8,9,10,11,12,13,15,16,18],thing:[2,8,13,15,16,17],thou:14,threshold:16,through:[10,12],thy:14,time:[],timeout:9,timestamp:[10,12,18],timeutil:[],timezon:[],tip:3,tool:10,topic:[],topolog:[],tornado:8,trace:10,track:[12,16],tri:2,tupl:[9,16,17],type:[2,10,11,13,15,16],type_:16,typecast:9,typeerror:11,unbind:[11,13],undefin:9,under:10,uniqu:[8,10,12],unit:8,univers:[],unix:10,unless:[8,11,13],unregist:9,unschedul:[2,10],until:18,untouch:[12,17],unus:[],updat:16,upon:10,upstream:8,usag:18,usual:16,utilit:[],utlitii:16,uuid:[8,11,13],vagrant:5,valid:10,valu:[2,9,10,16,17,18],valueerror:16,variabl:16,version:[3,10,16],via:[2,18],virtualenv:5,wait:[2,8,9],waiting_messag:12,walk:8,want:16,warn:12,warranti:10,weak:[16,18],web:10,well:10,went:2,when:[1,2,3,4,8,10,11,12,13,16],where:[2,10,12,16,18],which:[10,12,16],who:[1,12],wish:[2,17],without:[10,13],word:10,work:[3,8,16],worker:[],worker_id:12,worri:10,would:[2,16,18],wrap:[],wrong:2,you:[2,3,10,12,13,16,17],your:[2,10,16],zcontext:[11,13],zeromq:10,zmq:[9,10,11,12,13,16,17],zmqreceivemixin:16,zmqsendmixin:16,zmqstream:13,zsocket:[11,13]},titles:["API Documentation","<code class=\"docutils literal\"><span class=\"pre\">client</span></code> – Client Utilities","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> – Client Messaging","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> – Exceptions","Getting Started","Glossary","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> – Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> – Poller","Goals","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> – Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> – Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> – Sender","Style Guide","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> – Utilities","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> – Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> – Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> – Time Utilites"],titleterms:{"class":16,address:10,api:0,architectur:10,client:[1,2,10],contribut:3,document:[0,7],emqp:10,eventmq:[3,7],except:4,frame:10,get:5,global:10,glossari:6,goal:10,guid:14,header:10,heartbeat:10,indic:7,job:8,jobmanag:8,languag:10,licens:10,manag:8,messag:[2,17],poller:9,protocol:[],receiv:11,request:10,router:[10,12],schedul:10,sender:13,specif:[],start:5,style:14,tabl:7,time:18,timeutil:18,topolog:10,util:[1,15,16,17],utilit:18,welcom:[],worker:10}}) \ No newline at end of file | Search.setIndex({envversion:46,filenames:["api","client","client/messages","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","utils","utils/classes","utils/messages","utils/timeutils"],objects:{"eventmq.client":{messages:[2,0,0,"-"]},"eventmq.client.messages":{build_module_path:[2,2,1,""],defer_job:[2,2,1,""],job:[2,2,1,""],send_request:[2,2,1,""]},"eventmq.exceptions":{EventMQError:[4,5,1,""],InvalidMessageError:[4,5,1,""],MessageError:[4,5,1,""],PeerGoneAwayError:[4,5,1,""]},"eventmq.jobmanager":{JobManager:[6,4,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[6,3,1,""],active_jobs:[6,1,1,""],available_workers:[6,1,1,""],incoming:[6,1,1,""],jobmanager_main:[6,3,1,""],name:[6,1,1,""],on_ack:[6,3,1,""],on_heartbeat:[6,3,1,""],on_request:[6,3,1,""],process_message:[6,3,1,""],reset:[6,3,1,""],send_inform:[6,3,1,""],send_ready:[6,3,1,""],start:[6,3,1,""]},"eventmq.poller":{Poller:[7,4,1,""]},"eventmq.poller.Poller":{"__init__":[7,3,1,""],poll:[7,3,1,""],register:[7,3,1,""],unregister:[7,3,1,""]},"eventmq.receiver":{Receiver:[9,4,1,""]},"eventmq.receiver.Receiver":{"__init__":[9,3,1,""],connect:[9,3,1,""],listen:[9,3,1,""],name:[9,1,1,""],ready:[9,1,1,""],unbind:[9,3,1,""],zcontext:[9,1,1,""],zsocket:[9,1,1,""]},"eventmq.router":{Router:[10,4,1,""]},"eventmq.router.Router":{add_worker:[10,3,1,""],clean_up_dead_workers:[10,3,1,""],on_heartbeat:[10,3,1,""],on_inform:[10,3,1,""],on_ready:[10,3,1,""],on_receive_request:[10,3,1,""],process_worker_message:[10,3,1,""],queue_message:[10,3,1,""],queues:[10,1,1,""],requeue_worker:[10,3,1,""],router_main:[10,3,1,""],send_ack:[10,3,1,""],send_heartbeat:[10,3,1,""],send_workers_heartbeats:[10,3,1,""],start:[10,3,1,""],waiting_messages:[10,1,1,""],workers:[10,1,1,""]},"eventmq.sender":{Sender:[11,4,1,""]},"eventmq.sender.Sender":{"__init__":[11,3,1,""],connect:[11,3,1,""],listen:[11,3,1,""],name:[11,1,1,""],ready:[11,1,1,""],rebuild:[11,3,1,""],unbind:[11,3,1,""],zcontext:[11,1,1,""],zsocket:[11,1,1,""]},"eventmq.utils":{classes:[13,0,0,"-"],messages:[14,0,0,"-"],random_characters:[12,2,1,""],timeutils:[15,0,0,"-"]},"eventmq.utils.classes":{HeartbeatMixin:[13,4,1,""],ZMQReceiveMixin:[13,4,1,""],ZMQSendMixin:[13,4,1,""]},"eventmq.utils.classes.HeartbeatMixin":{"__init__":[13,3,1,""],"__weakref__":[13,1,1,""],is_dead:[13,3,1,""],reset_heartbeat_counters:[13,3,1,""],send_heartbeat:[13,3,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{"__weakref__":[13,1,1,""],recv:[13,3,1,""],recv_multipart:[13,3,1,""]},"eventmq.utils.classes.ZMQSendMixin":{"__weakref__":[13,1,1,""],send:[13,3,1,""],send_multipart:[13,3,1,""]},"eventmq.utils.messages":{fwd_emqp_router_message:[14,2,1,""],generate_msgid:[14,2,1,""],parse_message:[14,2,1,""],parse_router_message:[14,2,1,""],send_emqp_message:[14,2,1,""],send_emqp_router_message:[14,2,1,""]},"eventmq.utils.timeutils":{monotonic:[15,2,1,""],seconds_until:[15,2,1,""],timestamp:[15,2,1,""]},eventmq:{client:[1,0,0,"-"],exceptions:[4,0,0,"-"],jobmanager:[6,0,0,"-"],poller:[7,0,0,"-"],receiver:[9,0,0,"-"],router:[10,0,0,"-"],sender:[11,0,0,"-"],utils:[12,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","function","Python function"],"3":["py","method","Python method"],"4":["py","class","Python class"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:function","3":"py:method","4":"py:class","5":"py:exception"},terms:{"0mq":[8,13],"5min":[],"__init__":[6,7,9,11,13],"__weakref__":13,"_empty_":8,"_headers_":8,"_issu":[],"_msg_":8,"_msgid_":8,"_queue_name_":8,"_recipient_id":13,"_sourc":[],"_topic_name_":8,"_unix_ts_":8,"abstract":8,"case":[8,15],"class":[],"default":[2,6,8,9,10,11],"float":[13,15],"function":[2,10],"import":[2,3,6,10],"int":[2,7],"long":7,"new":10,"public":8,"return":[2,3,7,9,11,12,13,14,15],"true":[2,8,9,11,13],"while":8,abl:[],about:[6,8,10],absolut:3,accept:8,account:[10,14],ack:[8,10],ackd_msgid:6,acknowledg:[8,10],act:[1,8],activ:6,active_job:6,actual:[6,10],add:10,add_schedul:[],add_work:10,addr:[6,9,11],address:[],after:8,agre:8,all:[2,4,6,8,9,10,11,13],allow:8,alon:2,alpha:8,alreadi:10,also:[],alwai:[2,6],and_data:14,ani:[2,8,10],announc:10,anoth:[6,10],anyth:[],api:[],appear:7,appened:10,applic:[2,8],architectur:[],aren:[],arg2:2,arg3:2,arg:[2,6,7,9,10,11,13],argument:[],arithmet:15,around:[],assum:[],attempt:4,attr:7,automat:13,avail:[6,10],available_work:6,awaiting_ack:6,back:[8,10,13],backend_addr:10,base:[4,7],basi:8,becaus:10,becom:6,been:[2,13],befor:[2,7,8],begin:[6,10],belong:[8,10],below:8,best:2,between:8,bin:[],block:2,bool:[2,9,11,13],boot:15,both:[7,8],box:2,broadcast:8,broker:8,buffer:10,build:[2,10,11],build_module_path:2,built:8,bulid:9,busi:6,calcul:15,call:[6,7,10],callabl:[2,6,9],can:[1,2,8,10,14],certain:[],chang:[6,8],charact:12,check:[2,9,11,13],class_arg:[2,6],class_kwarg:[2,6],clean_up_dead_schedul:[],clean_up_dead_work:10,client:[],clock:[],close:[6,15],code:[3,5],colon:2,column:[],com:[],come:[2,10],comma:8,command:[2,6,8,10,13,14],complet:8,compon:8,configur:2,connction:[9,11],connect:[6,8,9,10,11,13,14],consist:8,contact:4,contain:[1,8,12],content:[],context:[9,11],convers:8,convienc:[7,13],correctli:10,count:[6,8,10,15],counter:13,cpu:2,creat:[10,11,12],cross:[],csv:8,current:[6,9,11],custom:10,data:[10,14],deal:12,dealer:11,death:13,debug:8,decor:2,decrypt:2,def:[],defeat:8,defer:2,defer_job:2,defin:[6,8,9,11,13],deliv:8,denot:[],describ:8,descript:8,detail:[2,8],detect:8,determin:8,devic:[7,13,14],dialog:8,dict:[2,6,7],dictionari:[7,8],did:2,die:[],differ:3,directli:[7,13],disabl:2,disconnect:[8,9],distribut:8,doe:[],doesn:7,dot:2,down:15,dst:15,duplic:10,dure:11,effort:2,either:8,els:[3,8],empti:8,emqp:[],emqpservic:[],enabl:2,encount:[2,4],end:[2,13],enderlab:[],ensur:[6,8],entri:10,error:2,even:8,event:7,eventloop:6,eventmqerror:4,everi:6,exampl:10,except:[],execut:[2,6,8],exist:[4,6],explicitli:13,expos:6,extra:8,fail:[2,8],failur:2,fair:8,fals:[2,6,8,9,11,13],few:3,field:8,file:[],find:13,finish:[8,10],first:8,fit:8,flag:[2,7],follow:[2,8],form:6,format:[2,6,8,14],forward:14,found:10,foundat:8,frame:[],free:[6,8],from:[4,6,7,8,9,10,11,15],frontend_addr:10,func:[2,6],fwd_emqp_router_messag:14,gener:[6,7,8,9,11,14],generate_msgid:14,github:[],give:2,given:10,gmtime:[],gnu:8,goal:[],good:13,guarante:[2,8],guarente:2,hand:12,handl:[6,8,10],happen:[7,10,11],hasn:[],have:[2,6,13,14],haven:10,header:[],heartbeat:[],heartbeat_timeout:10,heartbeati:13,heartbeatmixin:13,heavi:8,help:[],helper:[],here:[8,10],home:[],hope:8,how:[2,7],html:8,http:8,ident:8,identifi:10,ietf:8,ignor:8,immediatli:2,implement:[8,13],impli:8,includ:[2,8],incom:6,index:5,inform:[6,8,10],inform_typ:[],inherit:4,initi:2,insert:[8,13],instal:3,instanc:6,instanti:[2,6],interpret:8,interv:8,interval_min:[],interval_sec:[],intervalit:[],intes:2,invalidmessageerror:4,is_dead:13,is_heartbeat_en:[],isn:10,issu:[3,5,8],item:10,iter:7,itself:10,job:[],jobmanag:[],jobmanager_main:6,keep:[],kei:[7,8,10],kick:[6,10],know:[2,6,10],kwarg2:2,kwarg:[2,6,7,9,10,11,13],languag:[],last:[2,10],last_recv_heartbeat:[],later:[8,10],least:8,leav:8,length:12,lesser:8,let:8,lib:[],licens:[],like:[6,12,13],list:[2,6,8,10,13],listen:[6,9,10,11],locat:2,log:[2,6,10],logic:[6,10],longer:4,look:13,loop:[7,10],lower:10,mai:[2,8,10,13],main:6,make:12,malform:4,manag:[],mani:[2,8,11],manual:8,master:8,match:[],member:10,memebership:10,merchant:8,mess:15,messag:[],message_bodi:14,message_id:14,messageerror:4,met:13,meta:[10,14],method:[2,6,7,10,13],minut:[],mode:[],modifi:8,modul:[1,2,5,6,12],monoton:[10,13,15],more:[8,12],most:6,msg:[6,8,10,14],msg_id:[],msgid:[6,10],multipart:[8,13],must:[8,13],name:[2,6,8,9,10,11],need:[10,11],never:15,next:7,none:[2,6,9,10,11,13,14],noop:6,note:[6,9,11],now:13,number:[6,15],numer:[],object:[7,13],occur:13,off:[6,10],on_ack:6,on_command:[6,10],on_emqp_command:[],on_heartbeat:[6,10],on_inform:10,on_readi:10,on_receive_repli:[],on_receive_request:10,on_recv:9,on_request:6,on_schedul:[],onc:8,onli:[],onlin:10,option:[2,6,8,9,11,14],org:8,orient:8,origin:8,other:[2,8],otherwis:[2,6,9,11,13],out:[6,13],outgo:[],overwhelm:2,own:13,packag:[],page:5,param:2,paramet:[2,6,7,9,10,11,13,14],pars:[6,14],parse_messag:14,parse_router_messag:14,part:[8,14],particular:[8,11],pass:[2,8,9],path:[2,6],payload:14,peer:[4,8,13],peergoneawayerror:4,per:10,pictur:8,pip:[],placehold:[6,10],point:6,poll:7,poller:[],pollin:7,pollout:7,pool:[8,10],pop:10,portion:6,possibl:3,practic:13,prefix:14,prepend:8,pretti:8,problem:4,process:[6,8,10,11],process_messag:6,process_worker_messag:10,prop:[],properti:[9,11],protocol:[],protocol_vers:13,provid:[10,13],pub:8,publish:8,purpos:8,py2:[],py3:[],python2:[],queu:2,queue:[2,6,8,10],queue_messag:10,quick:2,rais:[2,4,9,11,14],random:[12,14],random_charact:12,raw:13,raw_messag:[],readi:[6,8,9,10,11],rebuild:11,receiv:[],received_disconnect:[],recent:[8,10],reciev:[],recip:[],recipi:[10,13,14],recipient_id:14,recommend:8,reconnect:11,recv:13,recv_multipart:13,redistribut:8,refer:[6,13],regist:[7,10],regular:8,rel:3,reliabl:8,remain:7,remot:13,remov:[8,10],reopen:6,rep:9,repli:[2,6,8,14],reply_request:2,repres:[],req:11,request:[],requeue_work:10,requir:8,requri:[],reset:[6,13],reset_heartbeat_count:13,resourc:[6,8],respond:[8,10],respons:[2,6,9,10,11],restart:[8,11],retri:[2,8],retry_count:2,rfc2119:8,rfc:8,robin:8,roughli:11,round:8,rout:[8,10],router:[],router_main:10,run:[2,6,8],sake:[],same:11,schedul:[],scheduler_id:[],scheduler_queu:[],scheduler_zmq_id:[],search:5,second:15,seconds_until:15,see:[7,8,10],self:[6,10,11],send:[2,4,6,8,10,11,13,14],send_ack:10,send_emqp_messag:14,send_emqp_router_messag:14,send_heartbeat:[10,13],send_inform:6,send_messag:[],send_multipart:13,send_raw:[],send_readi:6,send_request:2,send_schedule_request:[],send_schedulers_heartbeat:[],send_workers_heartbeat:10,sender:[],sender_id:14,sent:[8,10,13],seper:[2,8],serv:8,server:[6,8],servic:8,service_typ:[],set:[2,6,7,8,10,11,13],shall:8,shalt:[],should:[2,4,6,7,8,9,10,11],shown:8,simpl:[10,12],sinc:15,singl:8,site:[],skip:[11,13],skip_zmqstream:11,slot:[6,10],socket:[2,6,7,8,9,10,11,13,14],softwar:8,some:[2,6,12,13,14],someon:8,someth:[2,11,13,15],somewher:3,sourc:[3,5],spawn:6,specif:[],specifi:[8,12,13],start:[],start_valu:[],state:13,statu:8,stop:8,store:[6,10],str:[2,6,9,10,11,12,13,14],string:[2,6,8,9,10,11,14],structur:4,sub:8,subclass:4,subcmd:6,subcommand:[2,6],subject:8,subset:8,subtract:15,success:8,successfulli:2,system:3,take:[6,10,11,14],task:[2,6],tcp:[6,10],tell:6,term:8,than:[],thei:2,them:9,thi:[1,2,4,6,7,8,9,10,11,12,13,15],thing:[2,6,11,12,13,14],thou:[],threshold:13,through:[8,10],thy:[],time:[],timeout:7,timestamp:[8,10,15],timeutil:[],timezon:[],tip:3,tool:8,topic:[],topolog:[],tornado:6,trace:8,track:13,tri:2,tupl:[7,13,14],type:[2,8,9,11,12,13],type_:[],typecast:7,typeerror:9,unbind:[9,11],undefin:7,under:8,uniqu:[6,8,10],unit:6,univers:[],unix:8,unless:[6,9,11],unregist:7,unschedul:8,until:15,untouch:[10,14],unus:[],updat:[],upon:8,upstream:6,usag:[],usual:[],utilit:[],utlitii:[],uuid:[6,9,11],vagrant:[],valid:8,valu:[2,7,8,13,14,15],valueerror:[],variabl:13,version:[3,8,13],via:2,virtualenv:[],wait:[2,6,7],waiting_messag:10,walk:6,want:[],warn:10,warranti:8,weak:13,web:8,well:8,went:2,when:[1,2,3,4,6,8,9,10,11,13],where:[2,8,10,15],which:[8,10],who:[1,10],wish:[2,14],without:[8,11],word:8,work:[3,6,13],worker:[],worker_id:10,worri:8,would:[2,15],wrap:[],wrong:2,you:[2,3,8,10,11,13,14],your:[2,8,13],zcontext:[9,11],zeromq:8,zmq:[7,8,9,10,11,13,14],zmqreceivemixin:13,zmqsendmixin:13,zmqstream:11,zsocket:[9,11]},titles:["API Documentation","<code class=\"docutils literal\"><span class=\"pre\">client</span></code> – Client Utilities","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> – Client Messaging","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> – Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> – Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> – Poller","Goals","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> – Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> – Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> – Sender","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> – Utilities","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> – Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> – Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> – Time Utilites"],titleterms:{"class":13,address:8,api:0,architectur:8,client:[1,2,8],contribut:3,document:[0,5],emqp:8,eventmq:[3,5],except:4,frame:8,get:[],global:8,glossari:[],goal:8,guid:[],header:8,heartbeat:8,indic:5,job:6,jobmanag:6,languag:8,licens:8,manag:6,messag:[2,14],poller:7,protocol:[],receiv:9,request:8,router:[8,10],schedul:8,sender:11,specif:[],start:[],style:[],tabl:5,time:15,timeutil:15,topolog:8,util:[1,12,13,14],utilit:15,welcom:[],worker:8}}) \ No newline at end of file | ||
diff --git a/utils/classes.html b/utils/classes.html index af14fda..3c681f4 100644 --- a/utils/classes.html +++ b/utils/classes.html | |||
| @@ -152,117 +152,6 @@ | |||
| 152 | <h1><code class="xref py py-mod docutils literal"><span class="pre">classes</span></code> – Utility Classes<a class="headerlink" href="#classes-utility-classes" title="Permalink to this headline">¶</a></h1> | 152 | <h1><code class="xref py py-mod docutils literal"><span class="pre">classes</span></code> – Utility Classes<a class="headerlink" href="#classes-utility-classes" title="Permalink to this headline">¶</a></h1> |
| 153 | <p>Defines some classes to use when implementing ZMQ devices</p> | 153 | <p>Defines some classes to use when implementing ZMQ devices</p> |
| 154 | <dl class="class"> | 154 | <dl class="class"> |
| 155 | <dt id="eventmq.utils.classes.EMQPService"> | ||
| 156 | <em class="property">class </em><code class="descclassname">eventmq.utils.classes.</code><code class="descname">EMQPService</code><a class="headerlink" href="#eventmq.utils.classes.EMQPService" title="Permalink to this definition">¶</a></dt> | ||
| 157 | <dd><p>Helper for devices that connect to brokers.</p> | ||
| 158 | <p>Implements utility methods for sending EMQP messages for the following | ||
| 159 | EMQP commands.</p> | ||
| 160 | <blockquote> | ||
| 161 | <div><ul class="simple"> | ||
| 162 | <li>INFORM</li> | ||
| 163 | </ul> | ||
| 164 | </div></blockquote> | ||
| 165 | <p>Also implements utlitiy methods for managing long-running processes.</p> | ||
| 166 | <dl class="docutils"> | ||
| 167 | <dt>To use you must define:</dt> | ||
| 168 | <dd><ul class="first last simple"> | ||
| 169 | <li><cite>self.outgoing</cite> - socket where messages can be sent to the Router</li> | ||
| 170 | <li><cite>self.SERVICE_TYPE</cite> - defines the service type for INFORM. See | ||
| 171 | <a class="reference internal" href="#eventmq.utils.classes.EMQPService.send_inform" title="eventmq.utils.classes.EMQPService.send_inform"><code class="xref py py-meth docutils literal"><span class="pre">send_inform()</span></code></a> for more information.</li> | ||
| 172 | <li><cite>self.poller</cite> - the poller that <cite>self.outgoing</cite> will be using. | ||
| 173 | Usually: <cite>self.poller = eventmq.poller.Poller()</cite></li> | ||
| 174 | </ul> | ||
| 175 | </dd> | ||
| 176 | </dl> | ||
| 177 | <p>When messages are received from the router, they are processed in | ||
| 178 | <a class="reference internal" href="#eventmq.utils.classes.EMQPService.process_message" title="eventmq.utils.classes.EMQPService.process_message"><code class="xref py py-meth docutils literal"><span class="pre">process_message()</span></code></a> which then calls <cite>on_COMMAND</cite>. This should be used | ||
| 179 | in the event loop so if you want to respond to the SCHEDULE command, you | ||
| 180 | would define the method <cite>on_schedule</cite> in your service class.</p> | ||
| 181 | <p>See the code for <code class="xref py py-class docutils literal"><span class="pre">Scheduler</span></code> and <code class="xref py py-class docutils literal"><span class="pre">JobManager</span></code> for examples.</p> | ||
| 182 | <dl class="attribute"> | ||
| 183 | <dt id="eventmq.utils.classes.EMQPService.__weakref__"> | ||
| 184 | <code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.utils.classes.EMQPService.__weakref__" title="Permalink to this definition">¶</a></dt> | ||
| 185 | <dd><p>list of weak references to the object (if defined)</p> | ||
| 186 | </dd></dl> | ||
| 187 | |||
| 188 | <dl class="attribute"> | ||
| 189 | <dt id="eventmq.utils.classes.EMQPService.is_heartbeat_enabled"> | ||
| 190 | <code class="descname">is_heartbeat_enabled</code><a class="headerlink" href="#eventmq.utils.classes.EMQPService.is_heartbeat_enabled" title="Permalink to this definition">¶</a></dt> | ||
| 191 | <dd><p>Property to check if heartbeating is enabled. Useful when certain | ||
| 192 | properties must be updated for heartbeating | ||
| 193 | :returns: bool - True if heartbeating is enabled, False if it isn’t</p> | ||
| 194 | </dd></dl> | ||
| 195 | |||
| 196 | <dl class="method"> | ||
| 197 | <dt id="eventmq.utils.classes.EMQPService.on_ack"> | ||
| 198 | <code class="descname">on_ack</code><span class="sig-paren">(</span><em>msgid</em>, <em>ackd_msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.EMQPService.on_ack" title="Permalink to this definition">¶</a></dt> | ||
| 199 | <dd><p>Sets <code class="xref py py-attr docutils literal"><span class="pre">awaiting_ack</span></code> to False</p> | ||
| 200 | </dd></dl> | ||
| 201 | |||
| 202 | <dl class="method"> | ||
| 203 | <dt id="eventmq.utils.classes.EMQPService.process_message"> | ||
| 204 | <code class="descname">process_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.EMQPService.process_message" title="Permalink to this definition">¶</a></dt> | ||
| 205 | <dd><p>Processes a message. Processing takes form of calling an | ||
| 206 | <cite>on_EMQP_COMMAND</cite> method. The method must accept <cite>msgid</cite> and <cite>message</cite> | ||
| 207 | as the first arguments.</p> | ||
| 208 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 209 | <col class="field-name" /> | ||
| 210 | <col class="field-body" /> | ||
| 211 | <tbody valign="top"> | ||
| 212 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>msg</strong> – The message received from the socket to parse and process.</td> | ||
| 213 | </tr> | ||
| 214 | </tbody> | ||
| 215 | </table> | ||
| 216 | </dd></dl> | ||
| 217 | |||
| 218 | <dl class="method"> | ||
| 219 | <dt id="eventmq.utils.classes.EMQPService.reset"> | ||
| 220 | <code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.EMQPService.reset" title="Permalink to this definition">¶</a></dt> | ||
| 221 | <dd><p>Resets the current connection by closing and reopening the socket</p> | ||
| 222 | </dd></dl> | ||
| 223 | |||
| 224 | <dl class="method"> | ||
| 225 | <dt id="eventmq.utils.classes.EMQPService.send_inform"> | ||
| 226 | <code class="descname">send_inform</code><span class="sig-paren">(</span><em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.EMQPService.send_inform" title="Permalink to this definition">¶</a></dt> | ||
| 227 | <dd><p>Queues an INFORM command to <cite>self.outgoing</cite>.</p> | ||
| 228 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 229 | <col class="field-name" /> | ||
| 230 | <col class="field-body" /> | ||
| 231 | <tbody valign="top"> | ||
| 232 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> | ||
| 233 | <li><strong>type</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – Either ‘worker’ or ‘scheduler’</li> | ||
| 234 | <li><strong>queue</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) – <ul> | ||
| 235 | <li>For ‘worker’ type, the queues the worker is listening on</li> | ||
| 236 | <li>Ignored for ‘scheduler’ type</li> | ||
| 237 | </ul> | ||
| 238 | </li> | ||
| 239 | </ul> | ||
| 240 | </td> | ||
| 241 | </tr> | ||
| 242 | <tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><p class="first last"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code> – When <cite>type_</cite> does not match a specified type</p> | ||
| 243 | </td> | ||
| 244 | </tr> | ||
| 245 | </tbody> | ||
| 246 | </table> | ||
| 247 | </dd></dl> | ||
| 248 | |||
| 249 | <dl class="method"> | ||
| 250 | <dt id="eventmq.utils.classes.EMQPService.start"> | ||
| 251 | <code class="descname">start</code><span class="sig-paren">(</span><em>addr</em>, <em>queues='default'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.EMQPService.start" title="Permalink to this definition">¶</a></dt> | ||
| 252 | <dd><p>Connect to <cite>addr</cite> and begin listening for job requests</p> | ||
| 253 | <table class="docutils field-list" frame="void" rules="none"> | ||
| 254 | <col class="field-name" /> | ||
| 255 | <col class="field-body" /> | ||
| 256 | <tbody valign="top"> | ||
| 257 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>addr</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) – connection string to connect to</td> | ||
| 258 | </tr> | ||
| 259 | </tbody> | ||
| 260 | </table> | ||
| 261 | </dd></dl> | ||
| 262 | |||
| 263 | </dd></dl> | ||
| 264 | |||
| 265 | <dl class="class"> | ||
| 266 | <dt id="eventmq.utils.classes.HeartbeatMixin"> | 155 | <dt id="eventmq.utils.classes.HeartbeatMixin"> |
| 267 | <em class="property">class </em><code class="descclassname">eventmq.utils.classes.</code><code class="descname">HeartbeatMixin</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin" title="Permalink to this definition">¶</a></dt> | 156 | <em class="property">class </em><code class="descclassname">eventmq.utils.classes.</code><code class="descname">HeartbeatMixin</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.HeartbeatMixin" title="Permalink to this definition">¶</a></dt> |
| 268 | <dd><p>Provides methods for implementing heartbeats</p> | 157 | <dd><p>Provides methods for implementing heartbeats</p> |
diff --git a/utils/timeutils.html b/utils/timeutils.html index 087322b..72b99ed 100644 --- a/utils/timeutils.html +++ b/utils/timeutils.html | |||
| @@ -150,48 +150,6 @@ | |||
| 150 | 150 | ||
| 151 | <span class="target" id="module-eventmq.utils.timeutils"></span><div class="section" id="timeutils-time-utilites"> | 151 | <span class="target" id="module-eventmq.utils.timeutils"></span><div class="section" id="timeutils-time-utilites"> |
| 152 | <h1><code class="xref py py-mod docutils literal"><span class="pre">timeutils</span></code> – Time Utilites<a class="headerlink" href="#timeutils-time-utilites" title="Permalink to this headline">¶</a></h1> | 152 | <h1><code class="xref py py-mod docutils literal"><span class="pre">timeutils</span></code> – Time Utilites<a class="headerlink" href="#timeutils-time-utilites" title="Permalink to this headline">¶</a></h1> |
| 153 | <dl class="class"> | ||
| 154 | <dt id="eventmq.utils.timeutils.IntervalIter"> | ||
| 155 | <em class="property">class </em><code class="descclassname">eventmq.utils.timeutils.</code><code class="descname">IntervalIter</code><span class="sig-paren">(</span><em>start_value</em>, <em>interval_secs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.timeutils.IntervalIter" title="Permalink to this definition">¶</a></dt> | ||
| 156 | <dd><p>represents an interval (in seconds) and it’s <cite>next()</cite> execution time</p> | ||
| 157 | <dl class="docutils"> | ||
| 158 | <dt>Usage:</dt> | ||
| 159 | <dd><p class="first"># interval of 5min using monotonic clock (assume it starts at 0 for the | ||
| 160 | # sake of the example) | ||
| 161 | interval = IntervalIter(monotonic, 300) | ||
| 162 | # Py2</p> | ||
| 163 | <p>interval.next() # 300 | ||
| 164 | interval.next() # 600</p> | ||
| 165 | <p class="last"># Py3 | ||
| 166 | next(interval) # 300 | ||
| 167 | next(interval) # 600</p> | ||
| 168 | </dd> | ||
| 169 | </dl> | ||
| 170 | <dl class="method"> | ||
| 171 | <dt id="eventmq.utils.timeutils.IntervalIter.__init__"> | ||
| 172 | <code class="descname">__init__</code><span class="sig-paren">(</span><em>start_value</em>, <em>interval_secs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.timeutils.IntervalIter.__init__" title="Permalink to this definition">¶</a></dt> | ||
| 173 | <dd><table class="docutils field-list" frame="void" rules="none"> | ||
| 174 | <col class="field-name" /> | ||
| 175 | <col class="field-body" /> | ||
| 176 | <tbody valign="top"> | ||
| 177 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> | ||
| 178 | <li><strong>start_value</strong> (<em>numeric</em>) – via <a class="reference internal" href="#eventmq.utils.timeutils.monotonic" title="eventmq.utils.timeutils.monotonic"><code class="xref py py-func docutils literal"><span class="pre">monotonic()</span></code></a> or <a class="reference internal" href="#eventmq.utils.timeutils.timestamp" title="eventmq.utils.timeutils.timestamp"><code class="xref py py-func docutils literal"><span class="pre">timestamp()</span></code></a></li> | ||
| 179 | <li><strong>interval_secs</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) – </li> | ||
| 180 | </ul> | ||
| 181 | </td> | ||
| 182 | </tr> | ||
| 183 | </tbody> | ||
| 184 | </table> | ||
| 185 | </dd></dl> | ||
| 186 | |||
| 187 | <dl class="attribute"> | ||
| 188 | <dt id="eventmq.utils.timeutils.IntervalIter.__weakref__"> | ||
| 189 | <code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.utils.timeutils.IntervalIter.__weakref__" title="Permalink to this definition">¶</a></dt> | ||
| 190 | <dd><p>list of weak references to the object (if defined)</p> | ||
| 191 | </dd></dl> | ||
| 192 | |||
| 193 | </dd></dl> | ||
| 194 | |||
| 195 | <dl class="function"> | 153 | <dl class="function"> |
| 196 | <dt id="eventmq.utils.timeutils.monotonic"> | 154 | <dt id="eventmq.utils.timeutils.monotonic"> |
| 197 | <code class="descclassname">eventmq.utils.timeutils.</code><code class="descname">monotonic</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.timeutils.monotonic" title="Permalink to this definition">¶</a></dt> | 155 | <code class="descclassname">eventmq.utils.timeutils.</code><code class="descname">monotonic</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.timeutils.monotonic" title="Permalink to this definition">¶</a></dt> |