aboutsummaryrefslogtreecommitdiffstats
path: root/protocol.html
diff options
context:
space:
mode:
authorjason2016-09-21 12:58:12 -0600
committerjason2016-09-21 12:58:12 -0600
commit41b2025fe4e22689599ae1c2d7feb91b2e978d7e (patch)
treed2ce22b99ad1fc6ed8d70925563907db07dcb7ae /protocol.html
parent8a8396c454206feb589a806db2ddf8a03d2d757e (diff)
downloadeventmq-41b2025fe4e22689599ae1c2d7feb91b2e978d7e.tar.gz
eventmq-41b2025fe4e22689599ae1c2d7feb91b2e978d7e.zip
docs updates
Diffstat (limited to 'protocol.html')
-rw-r--r--protocol.html275
1 files changed, 169 insertions, 106 deletions
diff --git a/protocol.html b/protocol.html
index 274f8d1..828731e 100644
--- a/protocol.html
+++ b/protocol.html
@@ -60,7 +60,7 @@
60 60
61 61
62 <div class="version"> 62 <div class="version">
63 0.2.1 63 0.2.6.2
64 </div> 64 </div>
65 65
66 66
@@ -97,9 +97,10 @@
97<li class="toctree-l4"><a class="reference internal" href="#emqp-scheduler">eMQP / Scheduler</a></li> 97<li class="toctree-l4"><a class="reference internal" href="#emqp-scheduler">eMQP / Scheduler</a></li>
98<li class="toctree-l4"><a class="reference internal" href="#emqp-worker">eMQP / Worker</a></li> 98<li class="toctree-l4"><a class="reference internal" href="#emqp-worker">eMQP / Worker</a></li>
99<li class="toctree-l4"><a class="reference internal" href="#heartbeating">Heartbeating</a></li> 99<li class="toctree-l4"><a class="reference internal" href="#heartbeating">Heartbeating</a></li>
100<li class="toctree-l4"><a class="reference internal" href="#request-headers">REQUEST Headers</a></li> 100<li class="toctree-l4"><a class="reference internal" href="#headers">Headers</a></li>
101</ul> 101</ul>
102</li> 102</li>
103<li class="toctree-l3"><a class="reference internal" href="#disconnect-and-kbai">DISCONNECT and KBAI</a></li>
103</ul> 104</ul>
104</li> 105</li>
105<li class="toctree-l2"><a class="reference external" href="https://github.com/enderlabs/eventmq">Source Code</a></li> 106<li class="toctree-l2"><a class="reference external" href="https://github.com/enderlabs/eventmq">Source Code</a></li>
@@ -157,12 +158,12 @@
157<p><em>The status of this document is alpha and subject to heavy change</em></p> 158<p><em>The status of this document is alpha and subject to heavy change</em></p>
158<div class="section" id="goals"> 159<div class="section" id="goals">
159<h2>Goals<a class="headerlink" href="#goals" title="Permalink to this headline">¶</a></h2> 160<h2>Goals<a class="headerlink" href="#goals" title="Permalink to this headline">¶</a></h2>
160<p>The EventMQ Protocol (eMQP) defines a reliable service-oriented request-reply and pub-sub dialog between a set of clients, a broker, and a set of workers. This goal is to</p> 161<p>The EventMQ Protocol (eMQP) defines a reliable service-oriented request-reply and pub-sub dialog between a set of clients, a broker, and a set of workers.</p>
161<p>The goals are to:</p> 162<p>The goals are to:</p>
162<blockquote> 163<blockquote>
163<div><ul class="simple"> 164<div><ul class="simple">
164<li>Specify a protocol to follow when implementing a component to EventMQ.</li> 165<li>Specify a protocol to follow when implementing a component to EventMQ.</li>
165<li>Allow requests to be routed to workers by an abstracted service name.</li> 166<li>Allow requests to be routed to workers by an abstracted service name (named queues).</li>
166<li>Detect disconnected peers through heartbeating.</li> 167<li>Detect disconnected peers through heartbeating.</li>
167<li>Allow for message tracing and debugging.</li> 168<li>Allow for message tracing and debugging.</li>
168</ul> 169</ul>
@@ -231,15 +232,12 @@
231</tr> 232</tr>
232</tbody> 233</tbody>
233</table> 234</table>
234</div> 235<p>A <strong>REPLY</strong> frame consists of a 5-frame multipart message, formatted as follows.</p>
235<div class="section" id="emqp-client">
236<h3>eMQP / Client<a class="headerlink" href="#emqp-client" title="Permalink to this headline">¶</a></h3>
237<p>A <strong>REQUEST</strong> command consists of a 7-frame multipart message, formatted as follows.</p>
238<table border="1" class="docutils"> 236<table border="1" class="docutils">
239<colgroup> 237<colgroup>
240<col width="8%" /> 238<col width="13%" />
241<col width="20%" /> 239<col width="31%" />
242<col width="72%" /> 240<col width="56%" />
243</colgroup> 241</colgroup>
244<thead valign="bottom"> 242<thead valign="bottom">
245<tr class="row-odd"><th class="head">FRAME</th> 243<tr class="row-odd"><th class="head">FRAME</th>
@@ -257,7 +255,7 @@
257<td>Protocol version</td> 255<td>Protocol version</td>
258</tr> 256</tr>
259<tr class="row-even"><td>2</td> 257<tr class="row-even"><td>2</td>
260<td>REQUEST</td> 258<td>REPLY</td>
261<td>command</td> 259<td>command</td>
262</tr> 260</tr>
263<tr class="row-odd"><td>3</td> 261<tr class="row-odd"><td>3</td>
@@ -265,25 +263,17 @@
265<td>A unique id for the msg</td> 263<td>A unique id for the msg</td>
266</tr> 264</tr>
267<tr class="row-even"><td>4</td> 265<tr class="row-even"><td>4</td>
268<td>_QUEUE_NAME_</td>
269<td>the name of the queue the request should be sent to</td>
270</tr>
271<tr class="row-odd"><td>5</td>
272<td>_HEADERS_</td>
273<td>dictionary of headers. can be an empty set</td>
274</tr>
275<tr class="row-even"><td>6</td>
276<td>_MSG_</td> 266<td>_MSG_</td>
277<td>The message to send</td> 267<td>The reply to respond with</td>
278</tr> 268</tr>
279</tbody> 269</tbody>
280</table> 270</table>
281<p>A <strong>PUBLISH</strong> command consists of a 7-frame multipart messag, formatted as follows.</p> 271<p>A <strong>HEARTBEAT</strong> frame consists of a</p>
282<table border="1" class="docutils"> 272<table border="1" class="docutils">
283<colgroup> 273<colgroup>
284<col width="7%" /> 274<col width="14%" />
285<col width="17%" /> 275<col width="33%" />
286<col width="75%" /> 276<col width="53%" />
287</colgroup> 277</colgroup>
288<thead valign="bottom"> 278<thead valign="bottom">
289<tr class="row-odd"><th class="head">FRAME</th> 279<tr class="row-odd"><th class="head">FRAME</th>
@@ -301,7 +291,7 @@
301<td>Protocol version</td> 291<td>Protocol version</td>
302</tr> 292</tr>
303<tr class="row-even"><td>2</td> 293<tr class="row-even"><td>2</td>
304<td>PUBLISH</td> 294<td>HEARTBEAT</td>
305<td>command</td> 295<td>command</td>
306</tr> 296</tr>
307<tr class="row-odd"><td>3</td> 297<tr class="row-odd"><td>3</td>
@@ -309,25 +299,17 @@
309<td>A unique id for the msg</td> 299<td>A unique id for the msg</td>
310</tr> 300</tr>
311<tr class="row-even"><td>4</td> 301<tr class="row-even"><td>4</td>
312<td>_TOPIC_NAME_</td> 302<td>_UNIX_TS_</td>
313<td>the name of the topic this message should be published across</td> 303<td>A unix timestamp</td>
314</tr>
315<tr class="row-odd"><td>5</td>
316<td>_HEADERS_</td>
317<td>csv list of headers</td>
318</tr>
319<tr class="row-even"><td>6</td>
320<td>_MSG_</td>
321<td>The message to send</td>
322</tr> 304</tr>
323</tbody> 305</tbody>
324</table> 306</table>
325<p>A <strong>SCHEDULE</strong> command consists of a 7-frame multipart message, formatted as follows.</p> 307<p>A <strong>DISCONNECT</strong> frame consists of</p>
326<table border="1" class="docutils"> 308<table border="1" class="docutils">
327<colgroup> 309<colgroup>
328<col width="10%" /> 310<col width="14%" />
329<col width="23%" /> 311<col width="33%" />
330<col width="67%" /> 312<col width="53%" />
331</colgroup> 313</colgroup>
332<thead valign="bottom"> 314<thead valign="bottom">
333<tr class="row-odd"><th class="head">FRAME</th> 315<tr class="row-odd"><th class="head">FRAME</th>
@@ -345,28 +327,51 @@
345<td>Protocol version</td> 327<td>Protocol version</td>
346</tr> 328</tr>
347<tr class="row-even"><td>2</td> 329<tr class="row-even"><td>2</td>
348<td>SCHEDULE</td> 330<td>DISCONNECT</td>
349<td>command</td> 331<td>command</td>
350</tr> 332</tr>
351<tr class="row-odd"><td>3</td> 333<tr class="row-odd"><td>3</td>
352<td>_MSGID_</td> 334<td>_MSGID_</td>
353<td>A unique id for the msg</td> 335<td>A unique id for the msg</td>
354</tr> 336</tr>
355<tr class="row-even"><td>4</td> 337</tbody>
356<td>_QUEUE_NAME_</td> 338</table>
357<td>name of queue that the job should run in</td> 339<p>A <strong>KBAI</strong> frame consists of</p>
340<table border="1" class="docutils">
341<colgroup>
342<col width="14%" />
343<col width="33%" />
344<col width="53%" />
345</colgroup>
346<thead valign="bottom">
347<tr class="row-odd"><th class="head">FRAME</th>
348<th class="head">Value</th>
349<th class="head">Description</th>
358</tr> 350</tr>
359<tr class="row-odd"><td>5</td> 351</thead>
360<td>_HEADERS_</td> 352<tbody valign="top">
361<td>csv list of headers for this message</td> 353<tr class="row-even"><td>0</td>
354<td>_EMPTY_</td>
355<td>leave empty</td>
362</tr> 356</tr>
363<tr class="row-even"><td>6</td> 357<tr class="row-odd"><td>1</td>
364<td>_MSG_</td> 358<td>eMQP/1.0</td>
365<td>The message to send</td> 359<td>Protocol version</td>
360</tr>
361<tr class="row-even"><td>2</td>
362<td>KBAI</td>
363<td>command</td>
364</tr>
365<tr class="row-odd"><td>3</td>
366<td>_MSGID_</td>
367<td>A unique id for the msg</td>
366</tr> 368</tr>
367</tbody> 369</tbody>
368</table> 370</table>
369<p>An <strong>UNSCHEDULE</strong> command consists of a 7-frame multipart message, formatted as follows.</p> 371</div>
372<div class="section" id="emqp-client">
373<h3>eMQP / Client<a class="headerlink" href="#emqp-client" title="Permalink to this headline">¶</a></h3>
374<p>A <strong>REQUEST</strong> command consists of a 7-frame multipart message, formatted as follows.</p>
370<table border="1" class="docutils"> 375<table border="1" class="docutils">
371<colgroup> 376<colgroup>
372<col width="8%" /> 377<col width="8%" />
@@ -389,7 +394,7 @@
389<td>Protocol version</td> 394<td>Protocol version</td>
390</tr> 395</tr>
391<tr class="row-even"><td>2</td> 396<tr class="row-even"><td>2</td>
392<td>UNSCHEDULE</td> 397<td>REQUEST</td>
393<td>command</td> 398<td>command</td>
394</tr> 399</tr>
395<tr class="row-odd"><td>3</td> 400<tr class="row-odd"><td>3</td>
@@ -398,11 +403,11 @@
398</tr> 403</tr>
399<tr class="row-even"><td>4</td> 404<tr class="row-even"><td>4</td>
400<td>_QUEUE_NAME_</td> 405<td>_QUEUE_NAME_</td>
401<td>ignored for this command, broadcasted to all queues</td> 406<td>the name of the queue the request should be sent to</td>
402</tr> 407</tr>
403<tr class="row-odd"><td>5</td> 408<tr class="row-odd"><td>5</td>
404<td>_HEADERS_</td> 409<td>_HEADERS_</td>
405<td>csv list of headers for this message</td> 410<td>dictionary of headers. can be an empty set</td>
406</tr> 411</tr>
407<tr class="row-even"><td>6</td> 412<tr class="row-even"><td>6</td>
408<td>_MSG_</td> 413<td>_MSG_</td>
@@ -410,15 +415,12 @@
410</tr> 415</tr>
411</tbody> 416</tbody>
412</table> 417</table>
413</div> 418<p>A <strong>PUBLISH</strong> command consists of a 7-frame multipart messag, formatted as follows.</p>
414<div class="section" id="emqp-scheduler">
415<h3>eMQP / Scheduler<a class="headerlink" href="#emqp-scheduler" title="Permalink to this headline">¶</a></h3>
416<p>An <strong>INFORM</strong> command consists of a 6-frame multipart message, formatted as follows.</p>
417<table border="1" class="docutils"> 419<table border="1" class="docutils">
418<colgroup> 420<colgroup>
419<col width="13%" /> 421<col width="7%" />
420<col width="29%" /> 422<col width="17%" />
421<col width="58%" /> 423<col width="75%" />
422</colgroup> 424</colgroup>
423<thead valign="bottom"> 425<thead valign="bottom">
424<tr class="row-odd"><th class="head">FRAME</th> 426<tr class="row-odd"><th class="head">FRAME</th>
@@ -436,7 +438,7 @@
436<td>Protocol version</td> 438<td>Protocol version</td>
437</tr> 439</tr>
438<tr class="row-even"><td>2</td> 440<tr class="row-even"><td>2</td>
439<td>INFORM</td> 441<td>PUBLISH</td>
440<td>command</td> 442<td>command</td>
441</tr> 443</tr>
442<tr class="row-odd"><td>3</td> 444<tr class="row-odd"><td>3</td>
@@ -444,24 +446,25 @@
444<td>A unique id for the msg</td> 446<td>A unique id for the msg</td>
445</tr> 447</tr>
446<tr class="row-even"><td>4</td> 448<tr class="row-even"><td>4</td>
447<td>&nbsp;</td> 449<td>_TOPIC_NAME_</td>
448<td>Queues. Unused for scheduler</td> 450<td>the name of the topic this message should be published across</td>
449</tr> 451</tr>
450<tr class="row-odd"><td>5</td> 452<tr class="row-odd"><td>5</td>
451<td>scheduler</td> 453<td>_HEADERS_</td>
452<td>type of peer connecting</td> 454<td>csv list of headers</td>
455</tr>
456<tr class="row-even"><td>6</td>
457<td>_MSG_</td>
458<td>The message to send</td>
453</tr> 459</tr>
454</tbody> 460</tbody>
455</table> 461</table>
456</div> 462<p>A <strong>SCHEDULE</strong> command consists of a 7-frame multipart message, formatted as follows.</p>
457<div class="section" id="emqp-worker">
458<h3>eMQP / Worker<a class="headerlink" href="#emqp-worker" title="Permalink to this headline">¶</a></h3>
459<p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p>
460<table border="1" class="docutils"> 463<table border="1" class="docutils">
461<colgroup> 464<colgroup>
462<col width="5%" /> 465<col width="10%" />
463<col width="13%" /> 466<col width="23%" />
464<col width="82%" /> 467<col width="67%" />
465</colgroup> 468</colgroup>
466<thead valign="bottom"> 469<thead valign="bottom">
467<tr class="row-odd"><th class="head">FRAME</th> 470<tr class="row-odd"><th class="head">FRAME</th>
@@ -479,7 +482,7 @@
479<td>Protocol version</td> 482<td>Protocol version</td>
480</tr> 483</tr>
481<tr class="row-even"><td>2</td> 484<tr class="row-even"><td>2</td>
482<td>INFORM</td> 485<td>SCHEDULE</td>
483<td>command</td> 486<td>command</td>
484</tr> 487</tr>
485<tr class="row-odd"><td>3</td> 488<tr class="row-odd"><td>3</td>
@@ -487,21 +490,25 @@
487<td>A unique id for the msg</td> 490<td>A unique id for the msg</td>
488</tr> 491</tr>
489<tr class="row-even"><td>4</td> 492<tr class="row-even"><td>4</td>
490<td>_QUEUES_</td> 493<td>_QUEUE_NAME_</td>
491<td>csv seperated arrays containing an int and a string for weight and name. e.g. [40, &#8216;email&#8217;]</td> 494<td>name of queue that the job should run in</td>
492</tr> 495</tr>
493<tr class="row-odd"><td>5</td> 496<tr class="row-odd"><td>5</td>
494<td>worker</td> 497<td>_HEADERS_</td>
495<td>type of peer connecting</td> 498<td>csv list of headers for this message</td>
499</tr>
500<tr class="row-even"><td>6</td>
501<td>_MSG_</td>
502<td>The message to send</td>
496</tr> 503</tr>
497</tbody> 504</tbody>
498</table> 505</table>
499<p>A <strong>READY</strong> frame consists of a 4-frame multipart message, formatted as follows.</p> 506<p>An <strong>UNSCHEDULE</strong> command consists of a 7-frame multipart message, formatted as follows.</p>
500<table border="1" class="docutils"> 507<table border="1" class="docutils">
501<colgroup> 508<colgroup>
502<col width="14%" /> 509<col width="8%" />
503<col width="33%" /> 510<col width="20%" />
504<col width="53%" /> 511<col width="72%" />
505</colgroup> 512</colgroup>
506<thead valign="bottom"> 513<thead valign="bottom">
507<tr class="row-odd"><th class="head">FRAME</th> 514<tr class="row-odd"><th class="head">FRAME</th>
@@ -519,21 +526,36 @@
519<td>Protocol version</td> 526<td>Protocol version</td>
520</tr> 527</tr>
521<tr class="row-even"><td>2</td> 528<tr class="row-even"><td>2</td>
522<td>READY</td> 529<td>UNSCHEDULE</td>
523<td>command</td> 530<td>command</td>
524</tr> 531</tr>
525<tr class="row-odd"><td>3</td> 532<tr class="row-odd"><td>3</td>
526<td>_MSGID_</td> 533<td>_MSGID_</td>
527<td>A unique id for the msg</td> 534<td>A unique id for the msg</td>
528</tr> 535</tr>
536<tr class="row-even"><td>4</td>
537<td>_QUEUE_NAME_</td>
538<td>ignored for this command, broadcasted to all queues</td>
539</tr>
540<tr class="row-odd"><td>5</td>
541<td>_HEADERS_</td>
542<td>csv list of headers for this message</td>
543</tr>
544<tr class="row-even"><td>6</td>
545<td>_MSG_</td>
546<td>The message to send</td>
547</tr>
529</tbody> 548</tbody>
530</table> 549</table>
531<p>A <strong>REPLY</strong> frame consists of a 5-frame multipart message, formatted as follows.</p> 550</div>
551<div class="section" id="emqp-scheduler">
552<h3>eMQP / Scheduler<a class="headerlink" href="#emqp-scheduler" title="Permalink to this headline">¶</a></h3>
553<p>An <strong>INFORM</strong> command consists of a 6-frame multipart message, formatted as follows.</p>
532<table border="1" class="docutils"> 554<table border="1" class="docutils">
533<colgroup> 555<colgroup>
534<col width="13%" /> 556<col width="13%" />
535<col width="31%" /> 557<col width="29%" />
536<col width="56%" /> 558<col width="58%" />
537</colgroup> 559</colgroup>
538<thead valign="bottom"> 560<thead valign="bottom">
539<tr class="row-odd"><th class="head">FRAME</th> 561<tr class="row-odd"><th class="head">FRAME</th>
@@ -551,7 +573,7 @@
551<td>Protocol version</td> 573<td>Protocol version</td>
552</tr> 574</tr>
553<tr class="row-even"><td>2</td> 575<tr class="row-even"><td>2</td>
554<td>REPLY</td> 576<td>INFORM</td>
555<td>command</td> 577<td>command</td>
556</tr> 578</tr>
557<tr class="row-odd"><td>3</td> 579<tr class="row-odd"><td>3</td>
@@ -559,17 +581,24 @@
559<td>A unique id for the msg</td> 581<td>A unique id for the msg</td>
560</tr> 582</tr>
561<tr class="row-even"><td>4</td> 583<tr class="row-even"><td>4</td>
562<td>_MSG_</td> 584<td>&nbsp;</td>
563<td>The reply to respond with</td> 585<td>Queues. Unused for scheduler</td>
586</tr>
587<tr class="row-odd"><td>5</td>
588<td>scheduler</td>
589<td>type of peer connecting</td>
564</tr> 590</tr>
565</tbody> 591</tbody>
566</table> 592</table>
567<p>A <strong>HEARTBEAT</strong> frame consists of a</p> 593</div>
594<div class="section" id="emqp-worker">
595<h3>eMQP / Worker<a class="headerlink" href="#emqp-worker" title="Permalink to this headline">¶</a></h3>
596<p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p>
568<table border="1" class="docutils"> 597<table border="1" class="docutils">
569<colgroup> 598<colgroup>
570<col width="14%" /> 599<col width="5%" />
571<col width="33%" /> 600<col width="13%" />
572<col width="53%" /> 601<col width="82%" />
573</colgroup> 602</colgroup>
574<thead valign="bottom"> 603<thead valign="bottom">
575<tr class="row-odd"><th class="head">FRAME</th> 604<tr class="row-odd"><th class="head">FRAME</th>
@@ -587,7 +616,7 @@
587<td>Protocol version</td> 616<td>Protocol version</td>
588</tr> 617</tr>
589<tr class="row-even"><td>2</td> 618<tr class="row-even"><td>2</td>
590<td>HEARTBEAT</td> 619<td>INFORM</td>
591<td>command</td> 620<td>command</td>
592</tr> 621</tr>
593<tr class="row-odd"><td>3</td> 622<tr class="row-odd"><td>3</td>
@@ -595,12 +624,16 @@
595<td>A unique id for the msg</td> 624<td>A unique id for the msg</td>
596</tr> 625</tr>
597<tr class="row-even"><td>4</td> 626<tr class="row-even"><td>4</td>
598<td>_UNIX_TS_</td> 627<td>_QUEUES_</td>
599<td>A unix timestamp</td> 628<td>csv seperated arrays containing an int and a string for weight and name. e.g. [40, &#8216;email&#8217;]</td>
629</tr>
630<tr class="row-odd"><td>5</td>
631<td>worker</td>
632<td>type of peer connecting</td>
600</tr> 633</tr>
601</tbody> 634</tbody>
602</table> 635</table>
603<p>A <strong>DISCONNECT</strong> frame consists of</p> 636<p>A <strong>READY</strong> frame consists of a 4-frame multipart message, formatted as follows.</p>
604<table border="1" class="docutils"> 637<table border="1" class="docutils">
605<colgroup> 638<colgroup>
606<col width="14%" /> 639<col width="14%" />
@@ -623,7 +656,7 @@
623<td>Protocol version</td> 656<td>Protocol version</td>
624</tr> 657</tr>
625<tr class="row-even"><td>2</td> 658<tr class="row-even"><td>2</td>
626<td>DISCONNECT</td> 659<td>READY</td>
627<td>command</td> 660<td>command</td>
628</tr> 661</tr>
629<tr class="row-odd"><td>3</td> 662<tr class="row-odd"><td>3</td>
@@ -637,7 +670,7 @@
637<h3>Heartbeating<a class="headerlink" href="#heartbeating" title="Permalink to this headline">¶</a></h3> 670<h3>Heartbeating<a class="headerlink" href="#heartbeating" title="Permalink to this headline">¶</a></h3>
638<blockquote> 671<blockquote>
639<div><ul class="simple"> 672<div><ul class="simple">
640<li>HEARTBEAT commands are valid at any time after an INFORM command</li> 673<li>HEARTBEAT commands are valid at any time after an INFORM command.</li>
641<li>Any command except DISCONNECT act as a heartbeat. Peers SHOULD NOT send HEARTBEAT commands while sending other commands.</li> 674<li>Any command except DISCONNECT act as a heartbeat. Peers SHOULD NOT send HEARTBEAT commands while sending other commands.</li>
642<li>Worker and broker MUST send heartbeats at regular and agreed-upon intervals.</li> 675<li>Worker and broker MUST send heartbeats at regular and agreed-upon intervals.</li>
643<li>Scheduler and broker MUST send heartbeats at regular and agreed-upon intervals.</li> 676<li>Scheduler and broker MUST send heartbeats at regular and agreed-upon intervals.</li>
@@ -647,22 +680,24 @@
647</ul> 680</ul>
648</div></blockquote> 681</div></blockquote>
649</div> 682</div>
650<div class="section" id="request-headers"> 683<div class="section" id="headers">
651<h3>REQUEST Headers<a class="headerlink" href="#request-headers" title="Permalink to this headline">¶</a></h3> 684<h3>Headers<a class="headerlink" href="#headers" title="Permalink to this headline">¶</a></h3>
652<p>Headers MUST be 0 to many comma seperated values inserted into the header field. If there are no headers required, send an empty string MUST be sent where headers are required.</p> 685<p>Headers MUST be 0 to many comma seperated values inserted into the header field. If there are no headers required, an empty string MUST be sent where headers are required.</p>
653<p>Below is a table which defines and describes the headers.</p> 686<p>Below is a table which defines and describes the headers.</p>
654<table border="1" class="docutils"> 687<table border="1" class="docutils">
655<colgroup> 688<colgroup>
656<col width="9%" /> 689<col width="8%" />
657<col width="4%" /> 690<col width="3%" />
658<col width="4%" /> 691<col width="3%" />
659<col width="4%" /> 692<col width="4%" />
660<col width="78%" /> 693<col width="3%" />
694<col width="79%" />
661</colgroup> 695</colgroup>
662<thead valign="bottom"> 696<thead valign="bottom">
663<tr class="row-odd"><th class="head">Header</th> 697<tr class="row-odd"><th class="head">Header</th>
664<th class="head">REQUEST</th> 698<th class="head">REQUEST</th>
665<th class="head">PUBLISH</th> 699<th class="head">PUBLISH</th>
700<th class="head">SCHEDULE</th>
666<th class="head">Default</th> 701<th class="head">Default</th>
667<th class="head">Description</th> 702<th class="head">Description</th>
668</tr> 703</tr>
@@ -671,25 +706,53 @@
671<tr class="row-even"><td>reply-requested</td> 706<tr class="row-even"><td>reply-requested</td>
672<td>X</td> 707<td>X</td>
673<td>&nbsp;</td> 708<td>&nbsp;</td>
709<td>&nbsp;</td>
674<td>False</td> 710<td>False</td>
675<td>Once the job is finished, send a reply back with information from the job. If there is no information reply with a True value.</td> 711<td>Once the job is finished, send a reply back with information from the job. If there is no information reply with a True value.</td>
676</tr> 712</tr>
677<tr class="row-odd"><td>retry-count:#</td> 713<tr class="row-odd"><td>retry-count:#</td>
678<td>X</td> 714<td>X</td>
679<td>&nbsp;</td> 715<td>&nbsp;</td>
716<td>&nbsp;</td>
680<td>0</td> 717<td>0</td>
681<td>Retry a failed job this many times before accepting defeat.</td> 718<td>Retry a failed job this many times before accepting defeat.</td>
682</tr> 719</tr>
683<tr class="row-even"><td>guarantee</td> 720<tr class="row-even"><td>guarantee</td>
684<td>X</td> 721<td>X</td>
685<td>&nbsp;</td> 722<td>&nbsp;</td>
723<td>&nbsp;</td>
686<td>False</td> 724<td>False</td>
687<td>Ensure the job completes by letting someone else worry about a success reply.</td> 725<td>Ensure the job completes by letting someone else worry about a success reply.</td>
688</tr> 726</tr>
727<tr class="row-odd"><td>nohaste</td>
728<td>&nbsp;</td>
729<td>&nbsp;</td>
730<td>X</td>
731<td>False</td>
732<td>When scheduling a job, set this to True if you don&#8217;t want the job to run immediately as it&#8217;s scheduled. Instead, it will run for the first time when the interval has elapsed.</td>
733</tr>
689</tbody> 734</tbody>
690</table> 735</table>
691</div> 736</div>
692</div> 737</div>
738<div class="section" id="disconnect-and-kbai">
739<h2>DISCONNECT and KBAI<a class="headerlink" href="#disconnect-and-kbai" title="Permalink to this headline">¶</a></h2>
740<dl class="docutils">
741<dt>When a component receives a DISCONNECT command it:</dt>
742<dd><ul class="first last simple">
743<li>MUST send a KBAI command to all connected components.</li>
744<li>MUST stop sending and receiving any messages</li>
745<li>MUST allow any pending messages or jobs to complete.</li>
746</ul>
747</dd>
748<dt>When a component receives a KBAI command it:</dt>
749<dd><ul class="first last simple">
750<li>MUST stop sending any messages to the disconnecting component.</li>
751<li>SHOULD Clean up references to the disconnecting component.</li>
752</ul>
753</dd>
754</dl>
755</div>
693</div> 756</div>
694 757
695 758