aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--_sources/index.txt6
-rw-r--r--_sources/jobmanager.txt3
-rw-r--r--_sources/protocol.txt99
-rw-r--r--_sources/receiver.txt2
-rw-r--r--_sources/router.txt3
-rw-r--r--_sources/sender.txt3
-rw-r--r--genindex.html130
-rw-r--r--index.html13
-rw-r--r--jobmanager.html152
-rw-r--r--objects.invbin337 -> 449 bytes
-rw-r--r--protocol.html307
-rw-r--r--py-modindex.html36
-rw-r--r--receiver.html50
-rw-r--r--router.html29
-rw-r--r--searchindex.js2
-rw-r--r--sender.html253
16 files changed, 1019 insertions, 69 deletions
diff --git a/_sources/index.txt b/_sources/index.txt
index 80569bc..6c9d065 100644
--- a/_sources/index.txt
+++ b/_sources/index.txt
@@ -1,13 +1,17 @@
1Welcome to EventMQ's documentation! 1Welcome to EventMQ's documentation!
2=================================== 2===================================
3 3
4:doc:`protocol`
5
4Contents: 6Contents:
5 7
6.. toctree:: 8.. toctree::
7 :maxdepth: 2 9 :maxdepth: 2
8 10
11 jobmanager
9 receiver 12 receiver
10 router 13 router
14 sender
11 15
12 16
13Indices and tables 17Indices and tables
diff --git a/_sources/jobmanager.txt b/_sources/jobmanager.txt
new file mode 100644
index 0000000..65b439d
--- /dev/null
+++ b/_sources/jobmanager.txt
@@ -0,0 +1,3 @@
1.. automodule:: eventmq.jobmanager
2 :members:
3 :special-members:
diff --git a/_sources/protocol.txt b/_sources/protocol.txt
new file mode 100644
index 0000000..48dcacc
--- /dev/null
+++ b/_sources/protocol.txt
@@ -0,0 +1,99 @@
1EventMQ Protocol Specification
2==============================
3*The status of this document is alpha and subject to heavy change*
4
5Goals
6=====
7The 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
8
9The goals are to:
10
11 * Specify a protocol to follow when implementing a component to EventMQ.
12 * Allow requests to be routed to workers by an abstracted service name.
13 * Detect disconnected peers through heartbeating.
14 * Allow for message tracing and debugging.
15
16
17License
18=======
19This 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
21This 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
23Language
24========
25The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119[[1](http://tools.ietf.org/html/rfc2119)].
26
27Architecture
28============
29insert pretty picture here
30
31Topology
32--------
33eMQP connects a set of client applications (e.g. web servers), a broker, and a pool of workers. Clients connect to the broker as well as the workers.
34
35'Clients' is defined as application issuing requests and 'workers' as applications that process these requests. (Workers consist of a `JobManager` and a pool of `Worker` resources where the job executes.)
36
37The EventMQ broker handles a set of named queues. The broker SHOULD serve clients on a fair request and MAY deliver requests to workers on any basis, including 0MQ's built-in round robin or least-recently used.
38
39ROUTER Addressing
40-----------------
41In the case of request-reply, the broker MUST use a ROUTER socket to accept requests from both clients and workers. The broker MAY use a seperate socket implementing a subset of eMQP, or MAY use a single socket implementing all of eMQP.
42
43From the 0MQ manual[[2](http://api.zeromq.org/master:zmq-socket)]
44> When receiving messages a ROUTER socket shall prepend a message part containing the identity of the originating peer to the message before passing it to the application. When sending messages a ROUTER socket shall remove the first part of the message and use it to determine the identity of the peer the message shall be routed to.
45
46This extra frame is not shown in the specifications below.
47
48eMQP / Client
49-------------
50A **REQUEST** command consists of 7-frame multipart message, formatted as follows.
51
52====== ============== ===========
53FRAME Value Description
54====== ============== ===========
550 _EMPTY_ leave empty
561 eMQP/1.0 Protocol version
572 READY Command
583 _MSGID_ A unique id for the msg
594 _QUEUE_NAME_ the name of the queue the worker belongs to
605 _HEADERS_ dictionary of headers. can be an empty set
616 _MSG_ The message to send
62====== ============== ===========
63
64eMQP / Worker
65-------------
66An **INFORM** command consists of a 5-frame multipart message, formatted as follows.
67
68====== ============== ===========
69FRAME Value Description
70====== ============== ===========
710 _EMPTY_ leave empty
721 eMQP/1.0 Protocol version
732 INFORM
743 _MSGID_ A unique id for the msg
754 _QUEUE_NAME_ the name of the queue the worker belongs to
76====== ============== ===========
77
78A **READY** frame consists of a 4-frame multipart message, formatted as follows.
79
80====== ============== ===========
81FRAME Value Description
82====== ============== ===========
830 _EMPTY_ leave empty
841 eMQP/1.0 Protocol version
852 READY
863 _MSGID_ A unique id for the msg
87====== ============== ===========
88
89A **REPLY** frame consists of a 5-frame multipart message, formatted as follows.
90
91====== ============== ===========
92FRAME Value Description
93====== ============== ===========
940 _EMPTY_ leave empty
951 eMQP/1.0 Protocol version
962 REPLY
973 _MSGID_ A unique id for the msg
984 _MSG_ The reply to respond with
99====== ============== ===========
diff --git a/_sources/receiver.txt b/_sources/receiver.txt
index 1b61f63..854349c 100644
--- a/_sources/receiver.txt
+++ b/_sources/receiver.txt
@@ -1,3 +1,3 @@
1.. automodule:: receiver 1.. automodule:: eventmq.receiver
2 :members: 2 :members:
3 :special-members: 3 :special-members:
diff --git a/_sources/router.txt b/_sources/router.txt
index 8e17e12..9f7f576 100644
--- a/_sources/router.txt
+++ b/_sources/router.txt
@@ -1,2 +1,3 @@
1.. automodule:: router 1.. automodule:: eventmq.router
2 :members: 2 :members:
3 :special-members:
diff --git a/_sources/sender.txt b/_sources/sender.txt
new file mode 100644
index 0000000..67a1338
--- /dev/null
+++ b/_sources/sender.txt
@@ -0,0 +1,3 @@
1.. automodule:: eventmq.sender
2 :members:
3 :special-members:
diff --git a/genindex.html b/genindex.html
index cfe5043..f7b6577 100644
--- a/genindex.html
+++ b/genindex.html
@@ -51,6 +51,8 @@
51<div class="genindex-jumpbox"> 51<div class="genindex-jumpbox">
52 <a href="#_"><strong>_</strong></a> 52 <a href="#_"><strong>_</strong></a>
53 | <a href="#C"><strong>C</strong></a> 53 | <a href="#C"><strong>C</strong></a>
54 | <a href="#E"><strong>E</strong></a>
55 | <a href="#J"><strong>J</strong></a>
54 | <a href="#L"><strong>L</strong></a> 56 | <a href="#L"><strong>L</strong></a>
55 | <a href="#N"><strong>N</strong></a> 57 | <a href="#N"><strong>N</strong></a>
56 | <a href="#R"><strong>R</strong></a> 58 | <a href="#R"><strong>R</strong></a>
@@ -62,15 +64,39 @@
62<table style="width: 100%" class="indextable genindextable"><tr> 64<table style="width: 100%" class="indextable genindextable"><tr>
63 <td style="width: 33%" valign="top"><dl> 65 <td style="width: 33%" valign="top"><dl>
64 66
65 <dt><a href="receiver.html#receiver.Receiver.__init__">__init__() (receiver.Receiver method)</a> 67 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.__init__">__init__() (eventmq.jobmanager.JobManager method)</a>
66 </dt> 68 </dt>
67 69
70 <dd><dl>
71
72 <dt><a href="receiver.html#eventmq.receiver.Receiver.__init__">(eventmq.receiver.Receiver method)</a>
73 </dt>
74
75
76 <dt><a href="sender.html#eventmq.sender.Sender.__init__">(eventmq.sender.Sender method)</a>
77 </dt>
78
79 </dl></dd>
68 </dl></td> 80 </dl></td>
69 <td style="width: 33%" valign="top"><dl> 81 <td style="width: 33%" valign="top"><dl>
70 82
71 <dt><a href="receiver.html#receiver.Receiver.__weakref__">__weakref__ (receiver.Receiver attribute)</a> 83 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.__weakref__">__weakref__ (eventmq.jobmanager.JobManager attribute)</a>
84 </dt>
85
86 <dd><dl>
87
88 <dt><a href="receiver.html#eventmq.receiver.Receiver.__weakref__">(eventmq.receiver.Receiver attribute)</a>
89 </dt>
90
91
92 <dt><a href="router.html#eventmq.router.Router.__weakref__">(eventmq.router.Router attribute)</a>
72 </dt> 93 </dt>
73 94
95
96 <dt><a href="sender.html#eventmq.sender.Sender.__weakref__">(eventmq.sender.Sender attribute)</a>
97 </dt>
98
99 </dl></dd>
74 </dl></td> 100 </dl></td>
75</tr></table> 101</tr></table>
76 102
@@ -78,55 +104,105 @@
78<table style="width: 100%" class="indextable genindextable"><tr> 104<table style="width: 100%" class="indextable genindextable"><tr>
79 <td style="width: 33%" valign="top"><dl> 105 <td style="width: 33%" valign="top"><dl>
80 106
81 <dt><a href="receiver.html#receiver.Receiver.connect">connect() (receiver.Receiver method)</a> 107 <dt><a href="receiver.html#eventmq.receiver.Receiver.connect">connect() (eventmq.receiver.Receiver method)</a>
108 </dt>
109
110 <dd><dl>
111
112 <dt><a href="sender.html#eventmq.sender.Sender.connect">(eventmq.sender.Sender method)</a>
82 </dt> 113 </dt>
83 114
115 </dl></dd>
84 </dl></td> 116 </dl></td>
85</tr></table> 117</tr></table>
86 118
87<h2 id="L">L</h2> 119<h2 id="E">E</h2>
88<table style="width: 100%" class="indextable genindextable"><tr> 120<table style="width: 100%" class="indextable genindextable"><tr>
89 <td style="width: 33%" valign="top"><dl> 121 <td style="width: 33%" valign="top"><dl>
90 122
91 <dt><a href="receiver.html#receiver.Receiver.listen">listen() (receiver.Receiver method)</a> 123 <dt><a href="jobmanager.html#module-eventmq.jobmanager">eventmq.jobmanager (module)</a>
124 </dt>
125
126
127 <dt><a href="receiver.html#module-eventmq.receiver">eventmq.receiver (module)</a>
128 </dt>
129
130 </dl></td>
131 <td style="width: 33%" valign="top"><dl>
132
133 <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a>
134 </dt>
135
136
137 <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a>
92 </dt> 138 </dt>
93 139
94 </dl></td> 140 </dl></td>
95</tr></table> 141</tr></table>
96 142
97<h2 id="N">N</h2> 143<h2 id="J">J</h2>
98<table style="width: 100%" class="indextable genindextable"><tr> 144<table style="width: 100%" class="indextable genindextable"><tr>
99 <td style="width: 33%" valign="top"><dl> 145 <td style="width: 33%" valign="top"><dl>
100 146
101 <dt><a href="receiver.html#receiver.Receiver.name">name (receiver.Receiver attribute)</a> 147 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager">JobManager (class in eventmq.jobmanager)</a>
102 </dt> 148 </dt>
103 149
104 </dl></td> 150 </dl></td>
105</tr></table> 151</tr></table>
106 152
107<h2 id="R">R</h2> 153<h2 id="L">L</h2>
108<table style="width: 100%" class="indextable genindextable"><tr> 154<table style="width: 100%" class="indextable genindextable"><tr>
109 <td style="width: 33%" valign="top"><dl> 155 <td style="width: 33%" valign="top"><dl>
110 156
111 <dt><a href="receiver.html#receiver.Receiver.ready">ready (receiver.Receiver attribute)</a> 157 <dt><a href="receiver.html#eventmq.receiver.Receiver.listen">listen() (eventmq.receiver.Receiver method)</a>
112 </dt> 158 </dt>
113 159
114 160 <dd><dl>
115 <dt><a href="receiver.html#receiver.Receiver">Receiver (class in receiver)</a> 161
162 <dt><a href="sender.html#eventmq.sender.Sender.listen">(eventmq.sender.Sender method)</a>
116 </dt> 163 </dt>
117 164
165 </dl></dd>
166 </dl></td>
167</tr></table>
168
169<h2 id="N">N</h2>
170<table style="width: 100%" class="indextable genindextable"><tr>
171 <td style="width: 33%" valign="top"><dl>
118 172
119 <dt><a href="receiver.html#module-receiver">receiver (module)</a> 173 <dt><a href="receiver.html#eventmq.receiver.Receiver.name">name (eventmq.receiver.Receiver attribute)</a>
120 </dt> 174 </dt>
121 175
176 <dd><dl>
177
178 <dt><a href="sender.html#eventmq.sender.Sender.name">(eventmq.sender.Sender attribute)</a>
179 </dt>
180
181 </dl></dd>
122 </dl></td> 182 </dl></td>
183</tr></table>
184
185<h2 id="R">R</h2>
186<table style="width: 100%" class="indextable genindextable"><tr>
123 <td style="width: 33%" valign="top"><dl> 187 <td style="width: 33%" valign="top"><dl>
124 188
125 <dt><a href="router.html#router.Router">Router (class in router)</a> 189 <dt><a href="receiver.html#eventmq.receiver.Receiver.ready">ready (eventmq.receiver.Receiver attribute)</a>
190 </dt>
191
192 <dd><dl>
193
194 <dt><a href="sender.html#eventmq.sender.Sender.ready">(eventmq.sender.Sender attribute)</a>
195 </dt>
196
197 </dl></dd>
198
199 <dt><a href="receiver.html#eventmq.receiver.Receiver">Receiver (class in eventmq.receiver)</a>
126 </dt> 200 </dt>
127 201
202 </dl></td>
203 <td style="width: 33%" valign="top"><dl>
128 204
129 <dt><a href="router.html#module-router">router (module)</a> 205 <dt><a href="router.html#eventmq.router.Router">Router (class in eventmq.router)</a>
130 </dt> 206 </dt>
131 207
132 </dl></td> 208 </dl></td>
@@ -136,7 +212,21 @@
136<table style="width: 100%" class="indextable genindextable"><tr> 212<table style="width: 100%" class="indextable genindextable"><tr>
137 <td style="width: 33%" valign="top"><dl> 213 <td style="width: 33%" valign="top"><dl>
138 214
139 <dt><a href="router.html#router.Router.start">start() (router.Router method)</a> 215 <dt><a href="sender.html#eventmq.sender.Sender.send">send() (eventmq.sender.Sender method)</a>
216 </dt>
217
218
219 <dt><a href="sender.html#eventmq.sender.Sender.send_raw">send_raw() (eventmq.sender.Sender method)</a>
220 </dt>
221
222 </dl></td>
223 <td style="width: 33%" valign="top"><dl>
224
225 <dt><a href="sender.html#eventmq.sender.Sender">Sender (class in eventmq.sender)</a>
226 </dt>
227
228
229 <dt><a href="router.html#eventmq.router.Router.start">start() (eventmq.router.Router method)</a>
140 </dt> 230 </dt>
141 231
142 </dl></td> 232 </dl></td>
@@ -146,15 +236,21 @@
146<table style="width: 100%" class="indextable genindextable"><tr> 236<table style="width: 100%" class="indextable genindextable"><tr>
147 <td style="width: 33%" valign="top"><dl> 237 <td style="width: 33%" valign="top"><dl>
148 238
149 <dt><a href="receiver.html#receiver.Receiver.zcontext">zcontext (receiver.Receiver attribute)</a> 239 <dt><a href="receiver.html#eventmq.receiver.Receiver.zcontext">zcontext (eventmq.receiver.Receiver attribute)</a>
150 </dt> 240 </dt>
151 241
152 </dl></td> 242 </dl></td>
153 <td style="width: 33%" valign="top"><dl> 243 <td style="width: 33%" valign="top"><dl>
154 244
155 <dt><a href="receiver.html#receiver.Receiver.zsocket">zsocket (receiver.Receiver attribute)</a> 245 <dt><a href="receiver.html#eventmq.receiver.Receiver.zsocket">zsocket (eventmq.receiver.Receiver attribute)</a>
246 </dt>
247
248 <dd><dl>
249
250 <dt><a href="sender.html#eventmq.sender.Sender.zsocket">(eventmq.sender.Sender attribute)</a>
156 </dt> 251 </dt>
157 252
253 </dl></dd>
158 </dl></td> 254 </dl></td>
159</tr></table> 255</tr></table>
160 256
diff --git a/index.html b/index.html
index a836ba1..5a18265 100644
--- a/index.html
+++ b/index.html
@@ -24,7 +24,7 @@
24 <script type="text/javascript" src="_static/underscore.js"></script> 24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script> 25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <link rel="top" title="EventMQ 0 documentation" href="#" /> 26 <link rel="top" title="EventMQ 0 documentation" href="#" />
27 <link rel="next" title="receiver – Receiver" href="receiver.html" /> 27 <link rel="next" title="jobmanager – Job Manager" href="jobmanager.html" />
28 </head> 28 </head>
29 <body role="document"> 29 <body role="document">
30 <div class="related" role="navigation" aria-label="related navigation"> 30 <div class="related" role="navigation" aria-label="related navigation">
@@ -37,7 +37,7 @@
37 <a href="py-modindex.html" title="Python Module Index" 37 <a href="py-modindex.html" title="Python Module Index"
38 >modules</a> |</li> 38 >modules</a> |</li>
39 <li class="right" > 39 <li class="right" >
40 <a href="receiver.html" title="receiver – Receiver" 40 <a href="jobmanager.html" title="jobmanager – Job Manager"
41 accesskey="N">next</a> |</li> 41 accesskey="N">next</a> |</li>
42 <li class="nav-item nav-item-0"><a href="#">EventMQ 0 documentation</a> &raquo;</li> 42 <li class="nav-item nav-item-0"><a href="#">EventMQ 0 documentation</a> &raquo;</li>
43 </ul> 43 </ul>
@@ -50,11 +50,14 @@
50 50
51 <div class="section" id="welcome-to-eventmq-s-documentation"> 51 <div class="section" id="welcome-to-eventmq-s-documentation">
52<h1>Welcome to EventMQ&#8217;s documentation!<a class="headerlink" href="#welcome-to-eventmq-s-documentation" title="Permalink to this headline">¶</a></h1> 52<h1>Welcome to EventMQ&#8217;s documentation!<a class="headerlink" href="#welcome-to-eventmq-s-documentation" title="Permalink to this headline">¶</a></h1>
53<p><a class="reference internal" href="protocol.html"><em>EventMQ Protocol Specification</em></a></p>
53<p>Contents:</p> 54<p>Contents:</p>
54<div class="toctree-wrapper compound"> 55<div class="toctree-wrapper compound">
55<ul> 56<ul>
57<li class="toctree-l1"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
56<li class="toctree-l1"><a class="reference internal" href="receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></li> 58<li class="toctree-l1"><a class="reference internal" href="receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></li>
57<li class="toctree-l1"><a class="reference internal" href="router.html"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></li> 59<li class="toctree-l1"><a class="reference internal" href="router.html"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></li>
60<li class="toctree-l1"><a class="reference internal" href="sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li>
58</ul> 61</ul>
59</div> 62</div>
60</div> 63</div>
@@ -80,8 +83,8 @@
80</ul> 83</ul>
81 84
82 <h4>Next topic</h4> 85 <h4>Next topic</h4>
83 <p class="topless"><a href="receiver.html" 86 <p class="topless"><a href="jobmanager.html"
84 title="next chapter"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></p> 87 title="next chapter"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></p>
85 <div role="note" aria-label="source link"> 88 <div role="note" aria-label="source link">
86 <h3>This Page</h3> 89 <h3>This Page</h3>
87 <ul class="this-page-menu"> 90 <ul class="this-page-menu">
@@ -116,7 +119,7 @@
116 <a href="py-modindex.html" title="Python Module Index" 119 <a href="py-modindex.html" title="Python Module Index"
117 >modules</a> |</li> 120 >modules</a> |</li>
118 <li class="right" > 121 <li class="right" >
119 <a href="receiver.html" title="receiver – Receiver" 122 <a href="jobmanager.html" title="jobmanager – Job Manager"
120 >next</a> |</li> 123 >next</a> |</li>
121 <li class="nav-item nav-item-0"><a href="#">EventMQ 0 documentation</a> &raquo;</li> 124 <li class="nav-item nav-item-0"><a href="#">EventMQ 0 documentation</a> &raquo;</li>
122 </ul> 125 </ul>
diff --git a/jobmanager.html b/jobmanager.html
new file mode 100644
index 0000000..d430f67
--- /dev/null
+++ b/jobmanager.html
@@ -0,0 +1,152 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
9 <title>jobmanager – Job Manager &mdash; EventMQ 0 documentation</title>
10
11 <link rel="stylesheet" href="_static/classic.css" type="text/css" />
12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13
14 <script type="text/javascript">
15 var DOCUMENTATION_OPTIONS = {
16 URL_ROOT: './',
17 VERSION: '0',
18 COLLAPSE_INDEX: false,
19 FILE_SUFFIX: '.html',
20 HAS_SOURCE: true
21 };
22 </script>
23 <script type="text/javascript" src="_static/jquery.js"></script>
24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" />
27 <link rel="next" title="receiver – Receiver" href="receiver.html" />
28 <link rel="prev" title="Welcome to EventMQ’s documentation!" href="index.html" />
29 </head>
30 <body role="document">
31 <div class="related" role="navigation" aria-label="related navigation">
32 <h3>Navigation</h3>
33 <ul>
34 <li class="right" style="margin-right: 10px">
35 <a href="genindex.html" title="General Index"
36 accesskey="I">index</a></li>
37 <li class="right" >
38 <a href="py-modindex.html" title="Python Module Index"
39 >modules</a> |</li>
40 <li class="right" >
41 <a href="receiver.html" title="receiver – Receiver"
42 accesskey="N">next</a> |</li>
43 <li class="right" >
44 <a href="index.html" title="Welcome to EventMQ’s documentation!"
45 accesskey="P">previous</a> |</li>
46 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
47 </ul>
48 </div>
49
50 <div class="document">
51 <div class="documentwrapper">
52 <div class="bodywrapper">
53 <div class="body" role="main">
54
55 <span class="target" id="module-eventmq.jobmanager"></span><div class="section" id="jobmanager-job-manager">
56<h1><code class="xref py py-mod docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager<a class="headerlink" href="#jobmanager-job-manager" title="Permalink to this headline">¶</a></h1>
57<p>Ensures things about jobs
58Spawns and manages workers</p>
59<dl class="class">
60<dt id="eventmq.jobmanager.JobManager">
61<em class="property">class </em><code class="descclassname">eventmq.jobmanager.</code><code class="descname">JobManager</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager" title="Permalink to this definition">¶</a></dt>
62<dd><p>The exposed portion of the worker. The job manager&#8217;s main responsibility is
63to manage the resources on the server it&#8217;s running.</p>
64<p>This job manager uses tornado&#8217;s eventloop.</p>
65<dl class="method">
66<dt id="eventmq.jobmanager.JobManager.__init__">
67<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.__init__" title="Permalink to this definition">¶</a></dt>
68<dd><div class="admonition note">
69<p class="first admonition-title">Note</p>
70<p class="last">All args are optional unless otherwise noted.</p>
71</div>
72<table class="docutils field-list" frame="void" rules="none">
73<col class="field-name" />
74<col class="field-body" />
75<tbody valign="top">
76<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>name</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; unique name of this instance. By default a uuid will be
77generated.</td>
78</tr>
79</tbody>
80</table>
81</dd></dl>
82
83<dl class="attribute">
84<dt id="eventmq.jobmanager.JobManager.__weakref__">
85<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.jobmanager.JobManager.__weakref__" title="Permalink to this definition">¶</a></dt>
86<dd><p>list of weak references to the object (if defined)</p>
87</dd></dl>
88
89</dd></dl>
90
91</div>
92
93
94 </div>
95 </div>
96 </div>
97 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
98 <div class="sphinxsidebarwrapper">
99 <h4>Previous topic</h4>
100 <p class="topless"><a href="index.html"
101 title="previous chapter">Welcome to EventMQ&#8217;s documentation!</a></p>
102 <h4>Next topic</h4>
103 <p class="topless"><a href="receiver.html"
104 title="next chapter"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></p>
105 <div role="note" aria-label="source link">
106 <h3>This Page</h3>
107 <ul class="this-page-menu">
108 <li><a href="_sources/jobmanager.txt"
109 rel="nofollow">Show Source</a></li>
110 </ul>
111 </div>
112<div id="searchbox" style="display: none" role="search">
113 <h3>Quick search</h3>
114 <form class="search" action="search.html" method="get">
115 <input type="text" name="q" />
116 <input type="submit" value="Go" />
117 <input type="hidden" name="check_keywords" value="yes" />
118 <input type="hidden" name="area" value="default" />
119 </form>
120 <p class="searchtip" style="font-size: 90%">
121 Enter search terms or a module, class or function name.
122 </p>
123</div>
124<script type="text/javascript">$('#searchbox').show(0);</script>
125 </div>
126 </div>
127 <div class="clearer"></div>
128 </div>
129 <div class="related" role="navigation" aria-label="related navigation">
130 <h3>Navigation</h3>
131 <ul>
132 <li class="right" style="margin-right: 10px">
133 <a href="genindex.html" title="General Index"
134 >index</a></li>
135 <li class="right" >
136 <a href="py-modindex.html" title="Python Module Index"
137 >modules</a> |</li>
138 <li class="right" >
139 <a href="receiver.html" title="receiver – Receiver"
140 >next</a> |</li>
141 <li class="right" >
142 <a href="index.html" title="Welcome to EventMQ’s documentation!"
143 >previous</a> |</li>
144 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
145 </ul>
146 </div>
147 <div class="footer" role="contentinfo">
148 &copy; Copyright 2015, eventboard.io.
149 Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.
150 </div>
151 </body>
152</html> \ No newline at end of file
diff --git a/objects.inv b/objects.inv
index 822941c..a13b23e 100644
--- a/objects.inv
+++ b/objects.inv
Binary files differ
diff --git a/protocol.html b/protocol.html
new file mode 100644
index 0000000..196bb80
--- /dev/null
+++ b/protocol.html
@@ -0,0 +1,307 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
9 <title>EventMQ Protocol Specification &mdash; EventMQ 0 documentation</title>
10
11 <link rel="stylesheet" href="_static/classic.css" type="text/css" />
12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13
14 <script type="text/javascript">
15 var DOCUMENTATION_OPTIONS = {
16 URL_ROOT: './',
17 VERSION: '0',
18 COLLAPSE_INDEX: false,
19 FILE_SUFFIX: '.html',
20 HAS_SOURCE: true
21 };
22 </script>
23 <script type="text/javascript" src="_static/jquery.js"></script>
24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" />
27 </head>
28 <body role="document">
29 <div class="related" role="navigation" aria-label="related navigation">
30 <h3>Navigation</h3>
31 <ul>
32 <li class="right" style="margin-right: 10px">
33 <a href="genindex.html" title="General Index"
34 accesskey="I">index</a></li>
35 <li class="right" >
36 <a href="py-modindex.html" title="Python Module Index"
37 >modules</a> |</li>
38 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
39 </ul>
40 </div>
41
42 <div class="document">
43 <div class="documentwrapper">
44 <div class="bodywrapper">
45 <div class="body" role="main">
46
47 <div class="section" id="eventmq-protocol-specification">
48<h1>EventMQ Protocol Specification<a class="headerlink" href="#eventmq-protocol-specification" title="Permalink to this headline">¶</a></h1>
49<p><em>The status of this document is alpha and subject to heavy change</em></p>
50</div>
51<div class="section" id="goals">
52<h1>Goals<a class="headerlink" href="#goals" title="Permalink to this headline">¶</a></h1>
53<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>
54<p>The goals are to:</p>
55<blockquote>
56<div><ul class="simple">
57<li>Specify a protocol to follow when implementing a component to EventMQ.</li>
58<li>Allow requests to be routed to workers by an abstracted service name.</li>
59<li>Detect disconnected peers through heartbeating.</li>
60<li>Allow for message tracing and debugging.</li>
61</ul>
62</div></blockquote>
63</div>
64<div class="section" id="license">
65<h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1>
66<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>
67<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>
68</div>
69<div class="section" id="language">
70<h1>Language<a class="headerlink" href="#language" title="Permalink to this headline">¶</a></h1>
71<p>The key words &#8220;MUST&#8221;, &#8220;MUST NOT&#8221;, &#8220;REQUIRED&#8221;, &#8220;SHALL&#8221;, &#8220;SHALL NOT&#8221;, &#8220;SHOULD&#8221;, &#8220;SHOULD NOT&#8221;, &#8220;RECOMMENDED&#8221;, &#8220;MAY&#8221;, and &#8220;OPTIONAL&#8221; in this document are to be interpreted as described in RFC 2119[[1](<a class="reference external" href="http://tools.ietf.org/html/rfc2119">http://tools.ietf.org/html/rfc2119</a>)].</p>
72</div>
73<div class="section" id="architecture">
74<h1>Architecture<a class="headerlink" href="#architecture" title="Permalink to this headline">¶</a></h1>
75<p>insert pretty picture here</p>
76<div class="section" id="topology">
77<h2>Topology<a class="headerlink" href="#topology" title="Permalink to this headline">¶</a></h2>
78<p>eMQP connects a set of client applications (e.g. web servers), a broker, and a pool of workers. Clients connect to the broker as well as the workers.</p>
79<p>&#8216;Clients&#8217; is defined as application issuing requests and &#8216;workers&#8217; as applications that process these requests. (Workers consist of a <cite>JobManager</cite> and a pool of <cite>Worker</cite> resources where the job executes.)</p>
80<p>The EventMQ broker handles a set of named queues. The broker SHOULD serve clients on a fair request and MAY deliver requests to workers on any basis, including 0MQ&#8217;s built-in round robin or least-recently used.</p>
81</div>
82<div class="section" id="router-addressing">
83<h2>ROUTER Addressing<a class="headerlink" href="#router-addressing" title="Permalink to this headline">¶</a></h2>
84<p>In the case of request-reply, the broker MUST use a ROUTER socket to accept requests from both clients and workers. The broker MAY use a seperate socket implementing a subset of eMQP, or MAY use a single socket implementing all of eMQP.</p>
85<p>From the 0MQ manual[[2](<a class="reference external" href="http://api.zeromq.org/master:zmq-socket">http://api.zeromq.org/master:zmq-socket</a>)]
86&gt; When receiving messages a ROUTER socket shall prepend a message part containing the identity of the originating peer to the message before passing it to the application. When sending messages a ROUTER socket shall remove the first part of the message and use it to determine the identity of the peer the message shall be routed to.</p>
87<p>This extra frame is not shown in the specifications below.</p>
88</div>
89<div class="section" id="emqp-client">
90<h2>eMQP / Client<a class="headerlink" href="#emqp-client" title="Permalink to this headline">¶</a></h2>
91<p>A <strong>REQUEST</strong> command consists of 7-frame multipart message, formatted as follows.</p>
92<table border="1" class="docutils">
93<colgroup>
94<col width="10%" />
95<col width="22%" />
96<col width="68%" />
97</colgroup>
98<thead valign="bottom">
99<tr class="row-odd"><th class="head">FRAME</th>
100<th class="head">Value</th>
101<th class="head">Description</th>
102</tr>
103</thead>
104<tbody valign="top">
105<tr class="row-even"><td>0</td>
106<td>_EMPTY_</td>
107<td>leave empty</td>
108</tr>
109<tr class="row-odd"><td>1</td>
110<td>eMQP/1.0</td>
111<td>Protocol version</td>
112</tr>
113<tr class="row-even"><td>2</td>
114<td>READY</td>
115<td>Command</td>
116</tr>
117<tr class="row-odd"><td>3</td>
118<td>_MSGID_</td>
119<td>A unique id for the msg</td>
120</tr>
121<tr class="row-even"><td>4</td>
122<td>_QUEUE_NAME_</td>
123<td>the name of the queue the worker belongs to</td>
124</tr>
125<tr class="row-odd"><td>5</td>
126<td>_HEADERS_</td>
127<td>dictionary of headers. can be an empty set</td>
128</tr>
129<tr class="row-even"><td>6</td>
130<td>_MSG_</td>
131<td>The message to send</td>
132</tr>
133</tbody>
134</table>
135</div>
136<div class="section" id="emqp-worker">
137<h2>eMQP / Worker<a class="headerlink" href="#emqp-worker" title="Permalink to this headline">¶</a></h2>
138<p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p>
139<table border="1" class="docutils">
140<colgroup>
141<col width="10%" />
142<col width="22%" />
143<col width="68%" />
144</colgroup>
145<thead valign="bottom">
146<tr class="row-odd"><th class="head">FRAME</th>
147<th class="head">Value</th>
148<th class="head">Description</th>
149</tr>
150</thead>
151<tbody valign="top">
152<tr class="row-even"><td>0</td>
153<td>_EMPTY_</td>
154<td>leave empty</td>
155</tr>
156<tr class="row-odd"><td>1</td>
157<td>eMQP/1.0</td>
158<td>Protocol version</td>
159</tr>
160<tr class="row-even"><td>2</td>
161<td>INFORM</td>
162<td>&nbsp;</td>
163</tr>
164<tr class="row-odd"><td>3</td>
165<td>_MSGID_</td>
166<td>A unique id for the msg</td>
167</tr>
168<tr class="row-even"><td>4</td>
169<td>_QUEUE_NAME_</td>
170<td>the name of the queue the worker belongs to</td>
171</tr>
172</tbody>
173</table>
174<p>A <strong>READY</strong> frame consists of a 4-frame multipart message, formatted as follows.</p>
175<table border="1" class="docutils">
176<colgroup>
177<col width="14%" />
178<col width="33%" />
179<col width="53%" />
180</colgroup>
181<thead valign="bottom">
182<tr class="row-odd"><th class="head">FRAME</th>
183<th class="head">Value</th>
184<th class="head">Description</th>
185</tr>
186</thead>
187<tbody valign="top">
188<tr class="row-even"><td>0</td>
189<td>_EMPTY_</td>
190<td>leave empty</td>
191</tr>
192<tr class="row-odd"><td>1</td>
193<td>eMQP/1.0</td>
194<td>Protocol version</td>
195</tr>
196<tr class="row-even"><td>2</td>
197<td>READY</td>
198<td>&nbsp;</td>
199</tr>
200<tr class="row-odd"><td>3</td>
201<td>_MSGID_</td>
202<td>A unique id for the msg</td>
203</tr>
204</tbody>
205</table>
206<p>A <strong>REPLY</strong> frame consists of a 5-frame multipart message, formatted as follows.</p>
207<table border="1" class="docutils">
208<colgroup>
209<col width="13%" />
210<col width="31%" />
211<col width="56%" />
212</colgroup>
213<thead valign="bottom">
214<tr class="row-odd"><th class="head">FRAME</th>
215<th class="head">Value</th>
216<th class="head">Description</th>
217</tr>
218</thead>
219<tbody valign="top">
220<tr class="row-even"><td>0</td>
221<td>_EMPTY_</td>
222<td>leave empty</td>
223</tr>
224<tr class="row-odd"><td>1</td>
225<td>eMQP/1.0</td>
226<td>Protocol version</td>
227</tr>
228<tr class="row-even"><td>2</td>
229<td>REPLY</td>
230<td>&nbsp;</td>
231</tr>
232<tr class="row-odd"><td>3</td>
233<td>_MSGID_</td>
234<td>A unique id for the msg</td>
235</tr>
236<tr class="row-even"><td>4</td>
237<td>_MSG_</td>
238<td>The reply to respond with</td>
239</tr>
240</tbody>
241</table>
242</div>
243</div>
244
245
246 </div>
247 </div>
248 </div>
249 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
250 <div class="sphinxsidebarwrapper">
251 <h3><a href="index.html">Table Of Contents</a></h3>
252 <ul>
253<li><a class="reference internal" href="#">EventMQ Protocol Specification</a></li>
254<li><a class="reference internal" href="#goals">Goals</a></li>
255<li><a class="reference internal" href="#license">License</a></li>
256<li><a class="reference internal" href="#language">Language</a></li>
257<li><a class="reference internal" href="#architecture">Architecture</a><ul>
258<li><a class="reference internal" href="#topology">Topology</a></li>
259<li><a class="reference internal" href="#router-addressing">ROUTER Addressing</a></li>
260<li><a class="reference internal" href="#emqp-client">eMQP / Client</a></li>
261<li><a class="reference internal" href="#emqp-worker">eMQP / Worker</a></li>
262</ul>
263</li>
264</ul>
265
266 <div role="note" aria-label="source link">
267 <h3>This Page</h3>
268 <ul class="this-page-menu">
269 <li><a href="_sources/protocol.txt"
270 rel="nofollow">Show Source</a></li>
271 </ul>
272 </div>
273<div id="searchbox" style="display: none" role="search">
274 <h3>Quick search</h3>
275 <form class="search" action="search.html" method="get">
276 <input type="text" name="q" />
277 <input type="submit" value="Go" />
278 <input type="hidden" name="check_keywords" value="yes" />
279 <input type="hidden" name="area" value="default" />
280 </form>
281 <p class="searchtip" style="font-size: 90%">
282 Enter search terms or a module, class or function name.
283 </p>
284</div>
285<script type="text/javascript">$('#searchbox').show(0);</script>
286 </div>
287 </div>
288 <div class="clearer"></div>
289 </div>
290 <div class="related" role="navigation" aria-label="related navigation">
291 <h3>Navigation</h3>
292 <ul>
293 <li class="right" style="margin-right: 10px">
294 <a href="genindex.html" title="General Index"
295 >index</a></li>
296 <li class="right" >
297 <a href="py-modindex.html" title="Python Module Index"
298 >modules</a> |</li>
299 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
300 </ul>
301 </div>
302 <div class="footer" role="contentinfo">
303 &copy; Copyright 2015, eventboard.io.
304 Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.
305 </div>
306 </body>
307</html> \ No newline at end of file
diff --git a/py-modindex.html b/py-modindex.html
index ee308bd..2ee764b 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -26,10 +26,6 @@
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" /> 26 <link rel="top" title="EventMQ 0 documentation" href="index.html" />
27 27
28 28
29 <script type="text/javascript">
30 DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
31 </script>
32
33 29
34 </head> 30 </head>
35 <body role="document"> 31 <body role="document">
@@ -55,22 +51,38 @@
55 <h1>Python Module Index</h1> 51 <h1>Python Module Index</h1>
56 52
57 <div class="modindex-jumpbox"> 53 <div class="modindex-jumpbox">
58 <a href="#cap-r"><strong>r</strong></a> 54 <a href="#cap-e"><strong>e</strong></a>
59 </div> 55 </div>
60 56
61 <table class="indextable modindextable" cellspacing="0" cellpadding="2"> 57 <table class="indextable modindextable" cellspacing="0" cellpadding="2">
62 <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr> 58 <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
63 <tr class="cap" id="cap-r"><td></td><td> 59 <tr class="cap" id="cap-e"><td></td><td>
64 <strong>r</strong></td><td></td></tr> 60 <strong>e</strong></td><td></td></tr>
65 <tr> 61 <tr>
66 <td></td> 62 <td><img src="_static/minus.png" class="toggler"
63 id="toggle-1" style="display: none" alt="-" /></td>
67 <td> 64 <td>
68 <a href="receiver.html#module-receiver"><code class="xref">receiver</code></a></td><td> 65 <code class="xref">eventmq</code></td><td>
69 <em></em></td></tr> 66 <em></em></td></tr>
70 <tr> 67 <tr class="cg-1">
71 <td></td> 68 <td></td>
72 <td> 69 <td>&nbsp;&nbsp;&nbsp;
73 <a href="router.html#module-router"><code class="xref">router</code></a></td><td> 70 <a href="jobmanager.html#module-eventmq.jobmanager"><code class="xref">eventmq.jobmanager</code></a></td><td>
71 <em></em></td></tr>
72 <tr class="cg-1">
73 <td></td>
74 <td>&nbsp;&nbsp;&nbsp;
75 <a href="receiver.html#module-eventmq.receiver"><code class="xref">eventmq.receiver</code></a></td><td>
76 <em></em></td></tr>
77 <tr class="cg-1">
78 <td></td>
79 <td>&nbsp;&nbsp;&nbsp;
80 <a href="router.html#module-eventmq.router"><code class="xref">eventmq.router</code></a></td><td>
81 <em></em></td></tr>
82 <tr class="cg-1">
83 <td></td>
84 <td>&nbsp;&nbsp;&nbsp;
85 <a href="sender.html#module-eventmq.sender"><code class="xref">eventmq.sender</code></a></td><td>
74 <em></em></td></tr> 86 <em></em></td></tr>
75 </table> 87 </table>
76 88
diff --git a/receiver.html b/receiver.html
index d81d16d..0140afa 100644
--- a/receiver.html
+++ b/receiver.html
@@ -25,7 +25,7 @@
25 <script type="text/javascript" src="_static/doctools.js"></script> 25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" /> 26 <link rel="top" title="EventMQ 0 documentation" href="index.html" />
27 <link rel="next" title="router – Router" href="router.html" /> 27 <link rel="next" title="router – Router" href="router.html" />
28 <link rel="prev" title="Welcome to EventMQ’s documentation!" href="index.html" /> 28 <link rel="prev" title="jobmanager †Job Manager" href="jobmanager.html" />
29 </head> 29 </head>
30 <body role="document"> 30 <body role="document">
31 <div class="related" role="navigation" aria-label="related navigation"> 31 <div class="related" role="navigation" aria-label="related navigation">
@@ -41,7 +41,7 @@
41 <a href="router.html" title="router – Router" 41 <a href="router.html" title="router – Router"
42 accesskey="N">next</a> |</li> 42 accesskey="N">next</a> |</li>
43 <li class="right" > 43 <li class="right" >
44 <a href="index.html" title="Welcome to EventMQ’s documentation!" 44 <a href="jobmanager.html" title="jobmanager †Job Manager"
45 accesskey="P">previous</a> |</li> 45 accesskey="P">previous</a> |</li>
46 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li> 46 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
47 </ul> 47 </ul>
@@ -52,12 +52,12 @@
52 <div class="bodywrapper"> 52 <div class="bodywrapper">
53 <div class="body" role="main"> 53 <div class="body" role="main">
54 54
55 <span class="target" id="module-receiver"></span><div class="section" id="receiver-receiver"> 55 <span class="target" id="module-eventmq.receiver"></span><div class="section" id="receiver-receiver">
56<h1><a class="reference internal" href="#module-receiver" title="receiver"><code class="xref py py-mod docutils literal"><span class="pre">receiver</span></code></a> &#8211; Receiver<a class="headerlink" href="#receiver-receiver" title="Permalink to this headline">¶</a></h1> 56<h1><code class="xref py py-mod docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver<a class="headerlink" href="#receiver-receiver" title="Permalink to this headline">¶</a></h1>
57<p>The receiver is responsible for receiveing messages</p> 57<p>The receiver is responsible for receiveing messages</p>
58<dl class="class"> 58<dl class="class">
59<dt id="receiver.Receiver"> 59<dt id="eventmq.receiver.Receiver">
60<em class="property">class </em><code class="descclassname">receiver.</code><code class="descname">Receiver</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#receiver.Receiver" title="Permalink to this definition">¶</a></dt> 60<em class="property">class </em><code class="descclassname">eventmq.receiver.</code><code class="descname">Receiver</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.receiver.Receiver" title="Permalink to this definition">¶</a></dt>
61<dd><p>Receives messages and pass them to a callable.</p> 61<dd><p>Receives messages and pass them to a callable.</p>
62<div class="admonition note"> 62<div class="admonition note">
63<p class="first admonition-title">Note</p> 63<p class="first admonition-title">Note</p>
@@ -65,27 +65,27 @@
65(<code class="xref py py-mod docutils literal"><span class="pre">zmq.eventloop</span></code>).</p> 65(<code class="xref py py-mod docutils literal"><span class="pre">zmq.eventloop</span></code>).</p>
66</div> 66</div>
67<dl class="attribute"> 67<dl class="attribute">
68<dt id="receiver.Receiver.name"> 68<dt id="eventmq.receiver.Receiver.name">
69<code class="descname">name</code><a class="headerlink" href="#receiver.Receiver.name" title="Permalink to this definition">¶</a></dt> 69<code class="descname">name</code><a class="headerlink" href="#eventmq.receiver.Receiver.name" title="Permalink to this definition">¶</a></dt>
70<dd><p><em>str</em> &#8211; Name of this socket</p> 70<dd><p><em>str</em> &#8211; Name of this socket</p>
71</dd></dl> 71</dd></dl>
72 72
73<dl class="attribute"> 73<dl class="attribute">
74<dt id="receiver.Receiver.zcontext"> 74<dt id="eventmq.receiver.Receiver.zcontext">
75<code class="descname">zcontext</code><a class="headerlink" href="#receiver.Receiver.zcontext" title="Permalink to this definition">¶</a></dt> 75<code class="descname">zcontext</code><a class="headerlink" href="#eventmq.receiver.Receiver.zcontext" title="Permalink to this definition">¶</a></dt>
76<dd><p><a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Context" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Context</span></code></a> &#8211; socket context</p> 76<dd><p><a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Context" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Context</span></code></a> &#8211; socket context</p>
77</dd></dl> 77</dd></dl>
78 78
79<dl class="attribute"> 79<dl class="attribute">
80<dt id="receiver.Receiver.zsocket"> 80<dt id="eventmq.receiver.Receiver.zsocket">
81<code class="descname">zsocket</code><a class="headerlink" href="#receiver.Receiver.zsocket" title="Permalink to this definition">¶</a></dt> 81<code class="descname">zsocket</code><a class="headerlink" href="#eventmq.receiver.Receiver.zsocket" title="Permalink to this definition">¶</a></dt>
82<dd><p><a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Socket" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Socket</span></code></a> &#8211; socket wrapped up in a 82<dd><p><a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Socket" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Socket</span></code></a> &#8211; socket wrapped up in a
83<code class="xref py py-class docutils literal"><span class="pre">zmqstream.ZMQStream</span></code></p> 83<code class="xref py py-class docutils literal"><span class="pre">zmqstream.ZMQStream</span></code></p>
84</dd></dl> 84</dd></dl>
85 85
86<dl class="method"> 86<dl class="method">
87<dt id="receiver.Receiver.__init__"> 87<dt id="eventmq.receiver.Receiver.__init__">
88<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#receiver.Receiver.__init__" title="Permalink to this definition">¶</a></dt> 88<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.receiver.Receiver.__init__" title="Permalink to this definition">¶</a></dt>
89<dd><div class="admonition note"> 89<dd><div class="admonition note">
90<p class="first admonition-title">Note</p> 90<p class="first admonition-title">Note</p>
91<p class="last">All args are optional unless otherwise noted.</p> 91<p class="last">All args are optional unless otherwise noted.</p>
@@ -116,14 +116,14 @@ socket. Callable is unused and optional when this is True</li>
116</dd></dl> 116</dd></dl>
117 117
118<dl class="attribute"> 118<dl class="attribute">
119<dt id="receiver.Receiver.__weakref__"> 119<dt id="eventmq.receiver.Receiver.__weakref__">
120<code class="descname">__weakref__</code><a class="headerlink" href="#receiver.Receiver.__weakref__" title="Permalink to this definition">¶</a></dt> 120<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.receiver.Receiver.__weakref__" title="Permalink to this definition">¶</a></dt>
121<dd><p>list of weak references to the object (if defined)</p> 121<dd><p>list of weak references to the object (if defined)</p>
122</dd></dl> 122</dd></dl>
123 123
124<dl class="method"> 124<dl class="method">
125<dt id="receiver.Receiver.connect"> 125<dt id="eventmq.receiver.Receiver.connect">
126<code class="descname">connect</code><span class="sig-paren">(</span><em>addr=None</em><span class="sig-paren">)</span><a class="headerlink" href="#receiver.Receiver.connect" title="Permalink to this definition">¶</a></dt> 126<code class="descname">connect</code><span class="sig-paren">(</span><em>addr=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.receiver.Receiver.connect" title="Permalink to this definition">¶</a></dt>
127<dd><p>Connect to address defined by <cite>addr</cite></p> 127<dd><p>Connect to address defined by <cite>addr</cite></p>
128<table class="docutils field-list" frame="void" rules="none"> 128<table class="docutils field-list" frame="void" rules="none">
129<col class="field-name" /> 129<col class="field-name" />
@@ -138,8 +138,8 @@ socket. Callable is unused and optional when this is True</li>
138</dd></dl> 138</dd></dl>
139 139
140<dl class="method"> 140<dl class="method">
141<dt id="receiver.Receiver.listen"> 141<dt id="eventmq.receiver.Receiver.listen">
142<code class="descname">listen</code><span class="sig-paren">(</span><em>addr=None</em><span class="sig-paren">)</span><a class="headerlink" href="#receiver.Receiver.listen" title="Permalink to this definition">¶</a></dt> 142<code class="descname">listen</code><span class="sig-paren">(</span><em>addr=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.receiver.Receiver.listen" title="Permalink to this definition">¶</a></dt>
143<dd><p>start listening on <cite>addr</cite></p> 143<dd><p>start listening on <cite>addr</cite></p>
144<table class="docutils field-list" frame="void" rules="none"> 144<table class="docutils field-list" frame="void" rules="none">
145<col class="field-name" /> 145<col class="field-name" />
@@ -154,8 +154,8 @@ socket. Callable is unused and optional when this is True</li>
154</dd></dl> 154</dd></dl>
155 155
156<dl class="attribute"> 156<dl class="attribute">
157<dt id="receiver.Receiver.ready"> 157<dt id="eventmq.receiver.Receiver.ready">
158<code class="descname">ready</code><a class="headerlink" href="#receiver.Receiver.ready" title="Permalink to this definition">¶</a></dt> 158<code class="descname">ready</code><a class="headerlink" href="#eventmq.receiver.Receiver.ready" title="Permalink to this definition">¶</a></dt>
159<dd><p>Property used to check if this receiver is ready.</p> 159<dd><p>Property used to check if this receiver is ready.</p>
160<table class="docutils field-list" frame="void" rules="none"> 160<table class="docutils field-list" frame="void" rules="none">
161<col class="field-name" /> 161<col class="field-name" />
@@ -181,8 +181,8 @@ False</td>
181 <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> 181 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
182 <div class="sphinxsidebarwrapper"> 182 <div class="sphinxsidebarwrapper">
183 <h4>Previous topic</h4> 183 <h4>Previous topic</h4>
184 <p class="topless"><a href="index.html" 184 <p class="topless"><a href="jobmanager.html"
185 title="previous chapter">Welcome to EventMQ&#8217;s documentation!</a></p> 185 title="previous chapter"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></p>
186 <h4>Next topic</h4> 186 <h4>Next topic</h4>
187 <p class="topless"><a href="router.html" 187 <p class="topless"><a href="router.html"
188 title="next chapter"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></p> 188 title="next chapter"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></p>
@@ -223,7 +223,7 @@ False</td>
223 <a href="router.html" title="router – Router" 223 <a href="router.html" title="router – Router"
224 >next</a> |</li> 224 >next</a> |</li>
225 <li class="right" > 225 <li class="right" >
226 <a href="index.html" title="Welcome to EventMQ’s documentation!" 226 <a href="jobmanager.html" title="jobmanager †Job Manager"
227 >previous</a> |</li> 227 >previous</a> |</li>
228 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li> 228 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
229 </ul> 229 </ul>
diff --git a/router.html b/router.html
index f43d98e..c5e13c8 100644
--- a/router.html
+++ b/router.html
@@ -24,6 +24,7 @@
24 <script type="text/javascript" src="_static/underscore.js"></script> 24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script> 25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" /> 26 <link rel="top" title="EventMQ 0 documentation" href="index.html" />
27 <link rel="next" title="sender – Sender" href="sender.html" />
27 <link rel="prev" title="receiver – Receiver" href="receiver.html" /> 28 <link rel="prev" title="receiver – Receiver" href="receiver.html" />
28 </head> 29 </head>
29 <body role="document"> 30 <body role="document">
@@ -37,6 +38,9 @@
37 <a href="py-modindex.html" title="Python Module Index" 38 <a href="py-modindex.html" title="Python Module Index"
38 >modules</a> |</li> 39 >modules</a> |</li>
39 <li class="right" > 40 <li class="right" >
41 <a href="sender.html" title="sender – Sender"
42 accesskey="N">next</a> |</li>
43 <li class="right" >
40 <a href="receiver.html" title="receiver – Receiver" 44 <a href="receiver.html" title="receiver – Receiver"
41 accesskey="P">previous</a> |</li> 45 accesskey="P">previous</a> |</li>
42 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li> 46 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
@@ -48,16 +52,23 @@
48 <div class="bodywrapper"> 52 <div class="bodywrapper">
49 <div class="body" role="main"> 53 <div class="body" role="main">
50 54
51 <span class="target" id="module-router"></span><div class="section" id="router-router"> 55 <span class="target" id="module-eventmq.router"></span><div class="section" id="router-router">
52<h1><a class="reference internal" href="#module-router" title="router"><code class="xref py py-mod docutils literal"><span class="pre">router</span></code></a> &#8211; Router<a class="headerlink" href="#router-router" title="Permalink to this headline">¶</a></h1> 56<h1><code class="xref py py-mod docutils literal"><span class="pre">router</span></code> &#8211; Router<a class="headerlink" href="#router-router" title="Permalink to this headline">¶</a></h1>
53<p>Routes messages to workers (that are in named queues).</p> 57<p>Routes messages to workers (that are in named queues).</p>
54<dl class="class"> 58<dl class="class">
55<dt id="router.Router"> 59<dt id="eventmq.router.Router">
56<em class="property">class </em><code class="descclassname">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="#router.Router" title="Permalink to this definition">¶</a></dt> 60<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>
57<dd><p>A simple router of messages</p> 61<dd><p>A simple router of messages</p>
62<p>This router uses tornado&#8217;s eventloop.</p>
63<dl class="attribute">
64<dt id="eventmq.router.Router.__weakref__">
65<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.router.Router.__weakref__" title="Permalink to this definition">¶</a></dt>
66<dd><p>list of weak references to the object (if defined)</p>
67</dd></dl>
68
58<dl class="method"> 69<dl class="method">
59<dt id="router.Router.start"> 70<dt id="eventmq.router.Router.start">
60<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="#router.Router.start" title="Permalink to this definition">¶</a></dt> 71<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>
61<dd><p>Begin listening for connections on the provided connection strings</p> 72<dd><p>Begin listening for connections on the provided connection strings</p>
62<table class="docutils field-list" frame="void" rules="none"> 73<table class="docutils field-list" frame="void" rules="none">
63<col class="field-name" /> 74<col class="field-name" />
@@ -86,6 +97,9 @@
86 <h4>Previous topic</h4> 97 <h4>Previous topic</h4>
87 <p class="topless"><a href="receiver.html" 98 <p class="topless"><a href="receiver.html"
88 title="previous chapter"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></p> 99 title="previous chapter"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></p>
100 <h4>Next topic</h4>
101 <p class="topless"><a href="sender.html"
102 title="next chapter"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></p>
89 <div role="note" aria-label="source link"> 103 <div role="note" aria-label="source link">
90 <h3>This Page</h3> 104 <h3>This Page</h3>
91 <ul class="this-page-menu"> 105 <ul class="this-page-menu">
@@ -120,6 +134,9 @@
120 <a href="py-modindex.html" title="Python Module Index" 134 <a href="py-modindex.html" title="Python Module Index"
121 >modules</a> |</li> 135 >modules</a> |</li>
122 <li class="right" > 136 <li class="right" >
137 <a href="sender.html" title="sender – Sender"
138 >next</a> |</li>
139 <li class="right" >
123 <a href="receiver.html" title="receiver – Receiver" 140 <a href="receiver.html" title="receiver – Receiver"
124 >previous</a> |</li> 141 >previous</a> |</li>
125 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li> 142 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
diff --git a/searchindex.js b/searchindex.js
index b94af95..158c34c 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
Search.setIndex({envversion:46,filenames:["index","receiver","router"],objects:{"":{receiver:[1,0,0,"-"],router:[2,0,0,"-"]},"receiver.Receiver":{"__init__":[1,3,1,""],"__weakref__":[1,2,1,""],connect:[1,3,1,""],listen:[1,3,1,""],name:[1,2,1,""],ready:[1,2,1,""],zcontext:[1,2,1,""],zsocket:[1,2,1,""]},"router.Router":{start:[2,3,1,""]},receiver:{Receiver:[1,1,1,""]},router:{Router:[2,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method"},terms:{"__init__":1,"__weakref__":1,"class":[1,2],"default":1,"function":1,"return":1,"true":1,addr:1,address:1,all:1,arg:[1,2],avail:1,backend_addr:2,begin:2,bool:1,bulid:1,call:1,callabl:1,check:1,connction:1,connect:[1,2],content:0,context:1,creat:1,current:1,defin:1,eventloop:1,except:1,fals:1,frontend_addr:2,gener:1,index:0,kwarg:[1,2],list:1,listen:[1,2],messag:[1,2],method:1,modul:0,name:[1,2],none:1,note:1,object:1,onli:1,option:1,otherwis:1,page:0,paramet:[1,2],pass:1,poll:1,properti:1,provid:2,queue:2,rais:1,readi:1,receiv:0,reciev:1,refer:1,rep:1,request:2,requir:1,respons:1,rout:2,router:[0,1],search:0,set:1,should:1,simpl:2,skip:1,skip_zmqstream:1,socket:1,start:[1,2],str:1,string:[1,2],tcp:2,them:1,thi:1,type:1,typeerror:1,unless:1,unus:1,uuid:1,via:1,weak:1,when:1,worker:2,wrap:1,zcontext:1,zmq:1,zmqstream:1,zsocket:1},titles:["Welcome to EventMQ&#8217;s documentation!","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router"],titleterms:{document:0,eventmq:0,indic:0,receiv:1,router:2,tabl:0,welcom:0}}) \ No newline at end of file Search.setIndex({envversion:46,filenames:["index","jobmanager","protocol","receiver","router","sender"],objects:{"eventmq.jobmanager":{JobManager:[1,3,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[1,2,1,""],"__weakref__":[1,1,1,""]},"eventmq.receiver":{Receiver:[3,3,1,""]},"eventmq.receiver.Receiver":{"__init__":[3,2,1,""],"__weakref__":[3,1,1,""],connect:[3,2,1,""],listen:[3,2,1,""],name:[3,1,1,""],ready:[3,1,1,""],zcontext:[3,1,1,""],zsocket:[3,1,1,""]},"eventmq.router":{Router:[4,3,1,""]},"eventmq.router.Router":{"__weakref__":[4,1,1,""],start:[4,2,1,""]},"eventmq.sender":{Sender:[5,3,1,""]},"eventmq.sender.Sender":{"__init__":[5,2,1,""],"__weakref__":[5,1,1,""],connect:[5,2,1,""],listen:[5,2,1,""],name:[5,1,1,""],ready:[5,1,1,""],send:[5,2,1,""],send_raw:[5,2,1,""],zsocket:[5,1,1,""]},eventmq:{jobmanager:[1,0,0,"-"],receiver:[3,0,0,"-"],router:[4,0,0,"-"],sender:[5,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","method","Python method"],"3":["py","class","Python class"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:method","3":"py:class"},terms:{"0mq":[2,5],"__init__":[1,3,5],"__weakref__":[1,3,4,5],"_empty_":2,"_headers_":2,"_msg_":2,"_msgid_":2,"_queue_name_":2,"abstract":2,"case":2,"class":[1,3,4,5],"default":[1,3,5],"function":3,"public":2,"return":[3,5],"true":[3,5],about:1,accept:2,addr:[3,5],address:[3,5],all:[1,2,3,5],allow:2,alpha:2,ani:2,api:2,applic:2,architectur:[],arg:[1,3,4,5],avail:[3,5],backend_addr:4,basi:2,befor:2,begin:4,belong:2,below:2,between:2,bool:[3,5],both:2,broker:2,build:5,built:2,bulid:3,call:3,callabl:3,can:2,chang:2,check:[3,5],client:[],command:2,compon:2,connction:[3,5],connect:[2,3,4,5],consist:2,contain:2,content:0,context:[3,5],creat:[3,5],current:[3,5],dealer:5,debug:2,defin:[1,2,3,4,5],deliv:2,describ:2,descript:2,detail:2,detect:2,determin:2,dialog:2,dictionari:2,directli:5,disconnect:2,distribut:2,either:2,empti:2,emqp:[],ensur:1,even:2,eventloop:[1,3,4,5],except:[3,5],execut:2,expos:1,extra:2,fair:2,fals:[3,5],first:2,fit:2,follow:2,format:2,foundat:2,frame:2,free:2,from:2,frontend_addr:4,gener:[1,2,3,5],gnu:2,goal:[],handl:2,header:2,heartbeat:2,heavi:2,here:2,hope:2,html:2,http:2,ident:2,ietf:2,implement:2,impli:2,includ:2,index:0,inform:2,insert:2,instanc:1,interpret:2,issu:2,job:[],jobmanag:[],kei:2,kwarg:[1,3,4,5],languag:[],later:2,least:2,leav:2,licens:[],list:[1,3,4,5],listen:[3,4,5],mai:2,main:1,manag:[],manual:2,master:2,merchant:2,messag:[2,3,4,5],method:3,modifi:2,modul:0,more:2,msg:2,multipart:2,must:2,name:[1,2,3,4,5],none:[3,5],note:[1,3,5],object:[1,3,4,5],onli:[3,5],option:[1,2,3,5],org:2,orient:2,origin:2,otherwis:[1,3,5],page:0,paramet:[1,3,4,5],part:2,particular:[2,5],pass:[2,3],peer:2,pictur:2,poll:[3,5],pool:2,portion:1,prepend:2,pretti:2,process:2,properti:[3,5],protocol:0,provid:4,pub:2,publish:2,purpos:2,queue:[2,4,5],rais:[3,5],raw:5,raw_messag:5,readi:[2,3,5],receiv:[],recent:2,reciev:3,recommend:2,redistribut:2,refer:[1,3,4,5],reliabl:2,remov:2,rep:3,repli:2,req:5,request:[2,4],requir:[2,3],resourc:[1,2],respond:2,respons:[1,3,5],rfc2119:2,rfc:2,robin:2,round:2,rout:[2,4],router:[],run:1,search:0,see:2,send:[2,5],send_raw:5,sender:[],seper:2,serv:2,server:[1,2],servic:2,set:[2,3,5],shall:2,should:[2,3,5],shown:2,simpl:4,singl:2,skip:[3,5],skip_zmqstream:[3,5],socket:[2,3,5],softwar:2,someth:5,spawn:1,specif:0,specifi:2,start:[3,4,5],statu:2,str:[1,3,5],string:[3,4,5],sub:2,subject:2,subset:2,tcp:4,term:2,them:3,thi:[1,2,3,4,5],thing:1,through:2,tool:2,topic:5,topolog:[],tornado:[1,4],trace:2,tupl:5,type:[3,5],typeerror:3,under:2,uniqu:[1,2],unless:[1,3,5],unus:3,uuid:[1,3,5],valu:2,version:2,via:[3,5],warranti:2,weak:[1,3,4,5],web:2,well:2,when:[2,3,5],where:2,without:2,word:2,worker:[1,4],wrap:[3,5],you:2,your:2,zcontext:[3,5],zeromq:2,zmq:[2,3,5],zmqstream:[3,5],zsocket:[3,5]},titles:["Welcome to EventMQ&#8217;s documentation!","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender"],titleterms:{address:2,architectur:2,client:2,document:0,emqp:2,eventmq:[0,2],goal:2,indic:0,job:1,jobmanag:1,languag:2,licens:2,manag:1,protocol:2,receiv:3,router:[2,4],sender:5,specif:2,tabl:0,topolog:2,welcom:0,worker:2}}) \ No newline at end of file
diff --git a/sender.html b/sender.html
new file mode 100644
index 0000000..57f5345
--- /dev/null
+++ b/sender.html
@@ -0,0 +1,253 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5<html xmlns="http://www.w3.org/1999/xhtml">
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
9 <title>sender – Sender &mdash; EventMQ 0 documentation</title>
10
11 <link rel="stylesheet" href="_static/classic.css" type="text/css" />
12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
13
14 <script type="text/javascript">
15 var DOCUMENTATION_OPTIONS = {
16 URL_ROOT: './',
17 VERSION: '0',
18 COLLAPSE_INDEX: false,
19 FILE_SUFFIX: '.html',
20 HAS_SOURCE: true
21 };
22 </script>
23 <script type="text/javascript" src="_static/jquery.js"></script>
24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <link rel="top" title="EventMQ 0 documentation" href="index.html" />
27 <link rel="prev" title="router – Router" href="router.html" />
28 </head>
29 <body role="document">
30 <div class="related" role="navigation" aria-label="related navigation">
31 <h3>Navigation</h3>
32 <ul>
33 <li class="right" style="margin-right: 10px">
34 <a href="genindex.html" title="General Index"
35 accesskey="I">index</a></li>
36 <li class="right" >
37 <a href="py-modindex.html" title="Python Module Index"
38 >modules</a> |</li>
39 <li class="right" >
40 <a href="router.html" title="router – Router"
41 accesskey="P">previous</a> |</li>
42 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
43 </ul>
44 </div>
45
46 <div class="document">
47 <div class="documentwrapper">
48 <div class="bodywrapper">
49 <div class="body" role="main">
50
51 <span class="target" id="module-eventmq.sender"></span><div class="section" id="sender-sender">
52<h1><code class="xref py py-mod docutils literal"><span class="pre">sender</span></code> &#8211; Sender<a class="headerlink" href="#sender-sender" title="Permalink to this headline">¶</a></h1>
53<p>The sender is responsible for sending messages</p>
54<dl class="class">
55<dt id="eventmq.sender.Sender">
56<em class="property">class </em><code class="descclassname">eventmq.sender.</code><code class="descname">Sender</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.sender.Sender" title="Permalink to this definition">¶</a></dt>
57<dd><p>Sends messages to a particular socket</p>
58<div class="admonition note">
59<p class="first admonition-title">Note</p>
60<p class="last">Polling with this sender is currently only available via an eventloop
61(<code class="xref py py-mod docutils literal"><span class="pre">zmq.eventloop</span></code>)</p>
62</div>
63<dl class="attribute">
64<dt id="eventmq.sender.Sender.name">
65<code class="descname">name</code><a class="headerlink" href="#eventmq.sender.Sender.name" title="Permalink to this definition">¶</a></dt>
66<dd><p><em>str</em> &#8211; Name of this socket</p>
67</dd></dl>
68
69<dl class="attribute">
70<dt>
71<code class="descname">zcontext (</code></dt>
72<dd><p>class`zmq.Context`): socket context</p>
73</dd></dl>
74
75<dl class="attribute">
76<dt id="eventmq.sender.Sender.zsocket">
77<code class="descname">zsocket</code><a class="headerlink" href="#eventmq.sender.Sender.zsocket" title="Permalink to this definition">¶</a></dt>
78<dd><p><a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Socket" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Socket</span></code></a> &#8211; socket wrapped up in a
79<code class="xref py py-class docutils literal"><span class="pre">zmqstream.ZMQStream</span></code></p>
80</dd></dl>
81
82<dl class="method">
83<dt id="eventmq.sender.Sender.__init__">
84<code class="descname">__init__</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.sender.Sender.__init__" title="Permalink to this definition">¶</a></dt>
85<dd><div class="admonition note">
86<p class="first admonition-title">Note</p>
87<p class="last">All args are optional unless otherwise noted.</p>
88</div>
89<table class="docutils field-list" frame="void" rules="none">
90<col class="field-name" />
91<col class="field-body" />
92<tbody valign="top">
93<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
94<li><strong>name</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; name of this socket. By default a uuid will be
95generated</li>
96<li><strong>context</strong> (<a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Context" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Context</span></code></a>) &#8211; Context to use when building the
97socket</li>
98<li><strong>socket</strong> (<a class="reference external" href="http://pyzmq.readthedocs.org/en/v15.0.0/api/zmq.html#zmq.Socket" title="(in PyZMQ v15.0.0)"><code class="xref py py-class docutils literal"><span class="pre">zmq.Socket</span></code></a>) &#8211; Should be one of <code class="xref py py-attr docutils literal"><span class="pre">zmq.REQ</span></code> or
99<code class="xref py py-attr docutils literal"><span class="pre">zmq.DEALER</span></code>. By default a <cite>DEALER</cite> is used</li>
100<li><strong>skip_zmqstream</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#bool" title="(in Python v2.7)"><em>bool</em></a>) &#8211; If set to true, skip creating the zmqstream
101socket</li>
102</ul>
103</td>
104</tr>
105</tbody>
106</table>
107</dd></dl>
108
109<dl class="attribute">
110<dt id="eventmq.sender.Sender.__weakref__">
111<code class="descname">__weakref__</code><a class="headerlink" href="#eventmq.sender.Sender.__weakref__" title="Permalink to this definition">¶</a></dt>
112<dd><p>list of weak references to the object (if defined)</p>
113</dd></dl>
114
115<dl class="method">
116<dt id="eventmq.sender.Sender.connect">
117<code class="descname">connect</code><span class="sig-paren">(</span><em>addr=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.sender.Sender.connect" title="Permalink to this definition">¶</a></dt>
118<dd><p>Connect to address defined by <cite>addr</cite></p>
119<table class="docutils field-list" frame="void" rules="none">
120<col class="field-name" />
121<col class="field-body" />
122<tbody valign="top">
123<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>) &#8211; Address to connect to as a connection string</td>
124</tr>
125<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Exception</span></code></td>
126</tr>
127</tbody>
128</table>
129</dd></dl>
130
131<dl class="method">
132<dt id="eventmq.sender.Sender.listen">
133<code class="descname">listen</code><span class="sig-paren">(</span><em>addr=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.sender.Sender.listen" title="Permalink to this definition">¶</a></dt>
134<dd><p>start listening on <cite>addr</cite></p>
135<table class="docutils field-list" frame="void" rules="none">
136<col class="field-name" />
137<col class="field-body" />
138<tbody valign="top">
139<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>) &#8211; Address to listen on as a connction string</td>
140</tr>
141<tr class="field-even field"><th class="field-name">Raises:</th><td class="field-body"><code class="xref py py-class docutils literal"><span class="pre">Exception</span></code></td>
142</tr>
143</tbody>
144</table>
145</dd></dl>
146
147<dl class="attribute">
148<dt id="eventmq.sender.Sender.ready">
149<code class="descname">ready</code><a class="headerlink" href="#eventmq.sender.Sender.ready" title="Permalink to this definition">¶</a></dt>
150<dd><p>Property used to check if this receiver is ready.</p>
151<table class="docutils field-list" frame="void" rules="none">
152<col class="field-name" />
153<col class="field-body" />
154<tbody valign="top">
155<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">True if the receiver is ready to connect or listen, otherwise
156False</td>
157</tr>
158<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/library/functions.html#bool" title="(in Python v2.7)">bool</a></td>
159</tr>
160</tbody>
161</table>
162</dd></dl>
163
164<dl class="method">
165<dt id="eventmq.sender.Sender.send">
166<code class="descname">send</code><span class="sig-paren">(</span><em>message</em>, <em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.sender.Sender.send" title="Permalink to this definition">¶</a></dt>
167<dd><p>Sends a message</p>
168<table class="docutils field-list" frame="void" rules="none">
169<col class="field-name" />
170<col class="field-body" />
171<tbody valign="top">
172<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
173<li><strong>message</strong> &#8211; message to send to something</li>
174<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>) &#8211; queue topic</li>
175</ul>
176</td>
177</tr>
178</tbody>
179</table>
180</dd></dl>
181
182<dl class="method">
183<dt id="eventmq.sender.Sender.send_raw">
184<code class="descname">send_raw</code><span class="sig-paren">(</span><em>raw_message</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.sender.Sender.send_raw" title="Permalink to this definition">¶</a></dt>
185<dd><p>Send a message directly to the 0mq socket</p>
186<table class="docutils field-list" frame="void" rules="none">
187<col class="field-name" />
188<col class="field-body" />
189<tbody valign="top">
190<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>raw_message</strong> (<em>tuple, list</em>) &#8211; Raw message to send.</td>
191</tr>
192</tbody>
193</table>
194</dd></dl>
195
196</dd></dl>
197
198</div>
199
200
201 </div>
202 </div>
203 </div>
204 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
205 <div class="sphinxsidebarwrapper">
206 <h4>Previous topic</h4>
207 <p class="topless"><a href="router.html"
208 title="previous chapter"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></p>
209 <div role="note" aria-label="source link">
210 <h3>This Page</h3>
211 <ul class="this-page-menu">
212 <li><a href="_sources/sender.txt"
213 rel="nofollow">Show Source</a></li>
214 </ul>
215 </div>
216<div id="searchbox" style="display: none" role="search">
217 <h3>Quick search</h3>
218 <form class="search" action="search.html" method="get">
219 <input type="text" name="q" />
220 <input type="submit" value="Go" />
221 <input type="hidden" name="check_keywords" value="yes" />
222 <input type="hidden" name="area" value="default" />
223 </form>
224 <p class="searchtip" style="font-size: 90%">
225 Enter search terms or a module, class or function name.
226 </p>
227</div>
228<script type="text/javascript">$('#searchbox').show(0);</script>
229 </div>
230 </div>
231 <div class="clearer"></div>
232 </div>
233 <div class="related" role="navigation" aria-label="related navigation">
234 <h3>Navigation</h3>
235 <ul>
236 <li class="right" style="margin-right: 10px">
237 <a href="genindex.html" title="General Index"
238 >index</a></li>
239 <li class="right" >
240 <a href="py-modindex.html" title="Python Module Index"
241 >modules</a> |</li>
242 <li class="right" >
243 <a href="router.html" title="router – Router"
244 >previous</a> |</li>
245 <li class="nav-item nav-item-0"><a href="index.html">EventMQ 0 documentation</a> &raquo;</li>
246 </ul>
247 </div>
248 <div class="footer" role="contentinfo">
249 &copy; Copyright 2015, eventboard.io.
250 Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.1.
251 </div>
252 </body>
253</html> \ No newline at end of file