aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjason2015-12-08 15:17:19 -0700
committerjason2015-12-08 15:17:19 -0700
commite37b3e9b8889d539bf943eb76b8d02f18d645b01 (patch)
tree6f56581550f573ddd17c8e522291cd8cb995428e
parentb7d817813b8691aa38e43113e5af85e80cf99900 (diff)
downloadeventmq-e37b3e9b8889d539bf943eb76b8d02f18d645b01.tar.gz
eventmq-e37b3e9b8889d539bf943eb76b8d02f18d645b01.zip
updates
-rw-r--r--_sources/api.txt1
-rw-r--r--_sources/client.txt3
-rw-r--r--_sources/client/messages.txt3
-rw-r--r--_sources/style.txt4
-rw-r--r--api.html9
-rw-r--r--client.html226
-rw-r--r--client/messages.html349
-rw-r--r--genindex.html81
-rw-r--r--index.html1
-rw-r--r--jobmanager.html41
-rw-r--r--objects.invbin880 -> 963 bytes
-rw-r--r--py-modindex.html10
-rw-r--r--router.html75
-rw-r--r--searchindex.js2
-rw-r--r--style.html197
-rw-r--r--utils/classes.html6
-rw-r--r--utils/messages.html6
17 files changed, 988 insertions, 26 deletions
diff --git a/_sources/api.txt b/_sources/api.txt
index b3cdc83..1a8ea89 100644
--- a/_sources/api.txt
+++ b/_sources/api.txt
@@ -5,6 +5,7 @@ API Documentation
5.. toctree:: 5.. toctree::
6 :maxdepth: 2 6 :maxdepth: 2
7 7
8 client
8 exceptions 9 exceptions
9 jobmanager 10 jobmanager
10 poller 11 poller
diff --git a/_sources/client.txt b/_sources/client.txt
new file mode 100644
index 0000000..dad4ee4
--- /dev/null
+++ b/_sources/client.txt
@@ -0,0 +1,3 @@
1.. automodule:: eventmq.client
2 :members:
3 :special-members:
diff --git a/_sources/client/messages.txt b/_sources/client/messages.txt
new file mode 100644
index 0000000..f89b9d5
--- /dev/null
+++ b/_sources/client/messages.txt
@@ -0,0 +1,3 @@
1.. automodule:: eventmq.client.messages
2 :members:
3 :special-members:
diff --git a/_sources/style.txt b/_sources/style.txt
new file mode 100644
index 0000000..2f1cfea
--- /dev/null
+++ b/_sources/style.txt
@@ -0,0 +1,4 @@
1Style Guide
2===========
3
4 - Thou shalt not cross 80 columns in thy file
diff --git a/api.html b/api.html
index 3ea0a56..87d8541 100644
--- a/api.html
+++ b/api.html
@@ -31,7 +31,7 @@
31 31
32 32
33 <link rel="top" title="EventMQ 0 documentation" href="index.html"/> 33 <link rel="top" title="EventMQ 0 documentation" href="index.html"/>
34 <link rel="next" title="exceptionsExceptions" href="exceptions.html"/> 34 <link rel="next" title="clientClient Utilities" href="client.html"/>
35 <link rel="prev" title="EventMQ Documentation" href="index.html"/> 35 <link rel="prev" title="EventMQ Documentation" href="index.html"/>
36 36
37 37
@@ -83,6 +83,7 @@
83 83
84 <ul class="current"> 84 <ul class="current">
85<li class="toctree-l1 current"><a class="current reference internal" href="">API Documentation</a><ul> 85<li class="toctree-l1 current"><a class="current reference internal" href="">API Documentation</a><ul>
86<li class="toctree-l2"><a class="reference internal" href="client.html"><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</a></li>
86<li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li> 87<li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li>
87<li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li> 88<li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
88<li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li> 89<li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li>
@@ -141,6 +142,10 @@
141<h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this headline">¶</a></h1> 142<h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this headline">¶</a></h1>
142<div class="toctree-wrapper compound"> 143<div class="toctree-wrapper compound">
143<ul> 144<ul>
145<li class="toctree-l1"><a class="reference internal" href="client.html"><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</a><ul>
146<li class="toctree-l2"><a class="reference internal" href="client/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Client Messaging</a></li>
147</ul>
148</li>
144<li class="toctree-l1"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li> 149<li class="toctree-l1"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li>
145<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> 150<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>
146<li class="toctree-l1"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li> 151<li class="toctree-l1"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li>
@@ -164,7 +169,7 @@
164 169
165 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> 170 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
166 171
167 <a href="exceptions.html" class="btn btn-neutral float-right" title="exceptions – Exceptions" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> 172 <a href="client.html" class="btn btn-neutral float-right" title="client – Client Utilities" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
168 173
169 174
170 <a href="index.html" class="btn btn-neutral" title="EventMQ Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> 175 <a href="index.html" class="btn btn-neutral" title="EventMQ Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
diff --git a/client.html b/client.html
new file mode 100644
index 0000000..4241119
--- /dev/null
+++ b/client.html
@@ -0,0 +1,226 @@
1
2
3<!DOCTYPE html>
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6<head>
7 <meta charset="utf-8">
8
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <title>client – Client Utilities &mdash; EventMQ 0 documentation</title>
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
28
29
30
31
32
33 <link rel="top" title="EventMQ 0 documentation" href="index.html"/>
34 <link rel="up" title="API Documentation" href="api.html"/>
35 <link rel="next" title="messages – Client Messaging" href="client/messages.html"/>
36 <link rel="prev" title="API Documentation" href="api.html"/>
37
38
39 <script src="_static/js/modernizr.min.js"></script>
40
41</head>
42
43<body class="wy-body-for-nav" role="document">
44
45 <div class="wy-grid-for-nav">
46
47
48 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
49 <div class="wy-side-scroll">
50 <div class="wy-side-nav-search">
51
52
53
54 <a href="index.html" class="icon icon-home"> EventMQ
55
56
57
58 </a>
59
60
61
62
63 <div class="version">
64 0
65 </div>
66
67
68
69
70<div role="search">
71 <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
72 <input type="text" name="q" placeholder="Search docs" />
73 <input type="hidden" name="check_keywords" value="yes" />
74 <input type="hidden" name="area" value="default" />
75 </form>
76</div>
77
78
79 </div>
80
81 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
82
83
84
85 <ul class="current">
86<li class="toctree-l1 current"><a class="reference internal" href="api.html">API Documentation</a><ul class="current">
87<li class="toctree-l2 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</a><ul>
88<li class="toctree-l3"><a class="reference internal" href="client/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Client Messaging</a></li>
89</ul>
90</li>
91<li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li>
92<li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
93<li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li>
94<li class="toctree-l2"><a class="reference internal" href="receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></li>
95<li class="toctree-l2"><a class="reference internal" href="router.html"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></li>
96<li class="toctree-l2"><a class="reference internal" href="sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li>
97<li class="toctree-l2"><a class="reference internal" href="utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a></li>
98</ul>
99</li>
100<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to EventMQ</a></li>
101</ul>
102
103
104
105 </div>
106 </div>
107 </nav>
108
109 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
110
111
112 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
113 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
114 <a href="index.html">EventMQ</a>
115 </nav>
116
117
118
119 <div class="wy-nav-content">
120 <div class="rst-content">
121
122
123
124
125
126
127<div role="navigation" aria-label="breadcrumbs navigation">
128 <ul class="wy-breadcrumbs">
129 <li><a href="index.html">Docs</a> &raquo;</li>
130
131 <li><a href="api.html">API Documentation</a> &raquo;</li>
132
133 <li><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</li>
134 <li class="wy-breadcrumbs-aside">
135
136
137 <a href="_sources/client.txt" rel="nofollow"> View page source</a>
138
139
140 </li>
141 </ul>
142 <hr/>
143</div>
144 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
145 <div itemprop="articleBody">
146
147 <span class="target" id="module-eventmq.client"></span><div class="section" id="client-client-utilities">
148<h1><code class="xref py py-mod docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities<a class="headerlink" href="#client-client-utilities" title="Permalink to this headline">¶</a></h1>
149<p>This module contains a utilities that can be used when acting as a client in
150eventmq. (e.g. one who requests jobs)</p>
151<div class="toctree-wrapper compound">
152<ul>
153<li class="toctree-l1"><a class="reference internal" href="client/messages.html"><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Client Messaging</a></li>
154</ul>
155</div>
156</div>
157
158
159 </div>
160 </div>
161 <footer>
162
163 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
164
165 <a href="client/messages.html" class="btn btn-neutral float-right" title="messages – Client Messaging" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
166
167
168 <a href="api.html" class="btn btn-neutral" title="API Documentation" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
169
170 </div>
171
172
173 <hr/>
174
175 <div role="contentinfo">
176 <p>
177 &copy; Copyright 2015, eventboard.io.
178
179 </p>
180 </div>
181 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
182
183</footer>
184
185 </div>
186 </div>
187
188 </section>
189
190 </div>
191
192
193
194
195
196 <script type="text/javascript">
197 var DOCUMENTATION_OPTIONS = {
198 URL_ROOT:'./',
199 VERSION:'0',
200 COLLAPSE_INDEX:false,
201 FILE_SUFFIX:'.html',
202 HAS_SOURCE: true
203 };
204 </script>
205 <script type="text/javascript" src="_static/jquery.js"></script>
206 <script type="text/javascript" src="_static/underscore.js"></script>
207 <script type="text/javascript" src="_static/doctools.js"></script>
208
209
210
211
212
213 <script type="text/javascript" src="_static/js/theme.js"></script>
214
215
216
217
218 <script type="text/javascript">
219 jQuery(function () {
220 SphinxRtdTheme.StickyNav.enable();
221 });
222 </script>
223
224
225</body>
226</html> \ No newline at end of file
diff --git a/client/messages.html b/client/messages.html
new file mode 100644
index 0000000..4b9647f
--- /dev/null
+++ b/client/messages.html
@@ -0,0 +1,349 @@
1
2
3<!DOCTYPE html>
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6<head>
7 <meta charset="utf-8">
8
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <title>messages – Client Messaging &mdash; EventMQ 0 documentation</title>
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
28
29
30
31
32
33 <link rel="top" title="EventMQ 0 documentation" href="../index.html"/>
34 <link rel="up" title="client – Client Utilities" href="../client.html"/>
35 <link rel="next" title="exceptions – Exceptions" href="../exceptions.html"/>
36 <link rel="prev" title="client – Client Utilities" href="../client.html"/>
37
38
39 <script src="../_static/js/modernizr.min.js"></script>
40
41</head>
42
43<body class="wy-body-for-nav" role="document">
44
45 <div class="wy-grid-for-nav">
46
47
48 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
49 <div class="wy-side-scroll">
50 <div class="wy-side-nav-search">
51
52
53
54 <a href="../index.html" class="icon icon-home"> EventMQ
55
56
57
58 </a>
59
60
61
62
63 <div class="version">
64 0
65 </div>
66
67
68
69
70<div role="search">
71 <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
72 <input type="text" name="q" placeholder="Search docs" />
73 <input type="hidden" name="check_keywords" value="yes" />
74 <input type="hidden" name="area" value="default" />
75 </form>
76</div>
77
78
79 </div>
80
81 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
82
83
84
85 <ul class="current">
86<li class="toctree-l1 current"><a class="reference internal" href="../api.html">API Documentation</a><ul class="current">
87<li class="toctree-l2 current"><a class="reference internal" href="../client.html"><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</a><ul class="current">
88<li class="toctree-l3 current"><a class="current reference internal" href=""><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Client Messaging</a></li>
89</ul>
90</li>
91<li class="toctree-l2"><a class="reference internal" href="../exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li>
92<li class="toctree-l2"><a class="reference internal" href="../jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
93<li class="toctree-l2"><a class="reference internal" href="../poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li>
94<li class="toctree-l2"><a class="reference internal" href="../receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> &#8211; Receiver</a></li>
95<li class="toctree-l2"><a class="reference internal" href="../router.html"><code class="docutils literal"><span class="pre">router</span></code> &#8211; Router</a></li>
96<li class="toctree-l2"><a class="reference internal" href="../sender.html"><code class="docutils literal"><span class="pre">sender</span></code> &#8211; Sender</a></li>
97<li class="toctree-l2"><a class="reference internal" href="../utils.html"><code class="docutils literal"><span class="pre">utils</span></code> &#8211; Utilities</a></li>
98</ul>
99</li>
100<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing to EventMQ</a></li>
101</ul>
102
103
104
105 </div>
106 </div>
107 </nav>
108
109 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
110
111
112 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
113 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
114 <a href="../index.html">EventMQ</a>
115 </nav>
116
117
118
119 <div class="wy-nav-content">
120 <div class="rst-content">
121
122
123
124
125
126
127<div role="navigation" aria-label="breadcrumbs navigation">
128 <ul class="wy-breadcrumbs">
129 <li><a href="../index.html">Docs</a> &raquo;</li>
130
131 <li><a href="../api.html">API Documentation</a> &raquo;</li>
132
133 <li><a href="../client.html"><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</a> &raquo;</li>
134
135 <li><code class="docutils literal"><span class="pre">messages</span></code> &#8211; Client Messaging</li>
136 <li class="wy-breadcrumbs-aside">
137
138
139 <a href="../_sources/client/messages.txt" rel="nofollow"> View page source</a>
140
141
142 </li>
143 </ul>
144 <hr/>
145</div>
146 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
147 <div itemprop="articleBody">
148
149 <span class="target" id="module-eventmq.client.messages"></span><div class="section" id="messages-client-messaging">
150<h1><code class="xref py py-mod docutils literal"><span class="pre">messages</span></code> &#8211; Client Messaging<a class="headerlink" href="#messages-client-messaging" title="Permalink to this headline">¶</a></h1>
151<dl class="function">
152<dt id="eventmq.client.messages.build_module_path">
153<code class="descclassname">eventmq.client.messages.</code><code class="descname">build_module_path</code><span class="sig-paren">(</span><em>func</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.build_module_path" title="Permalink to this definition">¶</a></dt>
154<dd><p>Builds the module path in string format for a callable.</p>
155<table class="docutils field-list" frame="void" rules="none">
156<col class="field-name" />
157<col class="field-body" />
158<tbody valign="top">
159<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>func</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) &#8211; The function or method to build the path for</td>
160</tr>
161<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">(import path (w/ class seperated by a &#8216;:&#8217;), callable name) or
162(None, None) on error</td>
163</tr>
164<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)">list</a></td>
165</tr>
166</tbody>
167</table>
168</dd></dl>
169
170<dl class="function">
171<dt id="eventmq.client.messages.defer_job">
172<code class="descclassname">eventmq.client.messages.</code><code class="descname">defer_job</code><span class="sig-paren">(</span><em>socket</em>, <em>func</em>, <em>args=()</em>, <em>kwargs=None</em>, <em>class_args=()</em>, <em>class_kwargs=None</em>, <em>reply_requested=False</em>, <em>guarantee=False</em>, <em>retry_count=0</em>, <em>queue='default'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.defer_job" title="Permalink to this definition">¶</a></dt>
173<dd><p>Used to send a job to a worker to execute via <cite>socket</cite>.</p>
174<p>This tries not to raise any exceptions so use some of the message flags to
175guarentee things.</p>
176<table class="docutils field-list" frame="void" rules="none">
177<col class="field-name" />
178<col class="field-body" />
179<tbody valign="top">
180<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
181<li><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) &#8211; eventmq socket to use for sending the message</li>
182<li><strong>func</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#callable" title="(in Python v2.7)"><em>callable</em></a>) &#8211; the callable to be deferred to a worker</li>
183<li><strong>args</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id1"><span class="problematic" id="id2">*</span></a>args for the callable</li>
184<li><strong>kwargs</strong> (<a class="reference external" href="https://docs.python.org/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id3"><span class="problematic" id="id4">**</span></a>kwargs for the callable</li>
185<li><strong>class_args</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#list" title="(in Python v2.7)"><em>list</em></a>) &#8211; list of <a href="#id5"><span class="problematic" id="id6">*</span></a>args to pass to the the class when
186initializing (if applicable).</li>
187<li><strong>class_kwargs</strong> (<a class="reference external" href="https://docs.python.org/library/stdtypes.html#dict" title="(in Python v2.7)"><em>dict</em></a>) &#8211; dict of <a href="#id7"><span class="problematic" id="id8">**</span></a>kwargs to pass to the class when
188initializing (if applicable).</li>
189<li><strong>reply_requested</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#bool" title="(in Python v2.7)"><em>bool</em></a>) &#8211; request the return value of func as a reply</li>
190<li><strong>guarantee</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#bool" title="(in Python v2.7)"><em>bool</em></a>) &#8211; (Give your best effort) to guarantee that func is
191executed. Exceptions and things will be logged.</li>
192<li><strong>retry_count</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; How many times should be retried when encountering
193an Exception or some other failure before giving up. (default: 0
194or immediatly fail)</li>
195<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; Name of queue to use when executing the job. Default: is
196configured default queue name</li>
197</ul>
198</td>
199</tr>
200<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">True if the message was successfully queued, False if something
201went wrong. If something did go wrong check the logs for details.</p>
202</td>
203</tr>
204<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference external" href="https://docs.python.org/library/functions.html#bool" title="(in Python v2.7)">bool</a></p>
205</td>
206</tr>
207</tbody>
208</table>
209</dd></dl>
210
211<dl class="function">
212<dt id="eventmq.client.messages.job">
213<code class="descclassname">eventmq.client.messages.</code><code class="descname">job</code><span class="sig-paren">(</span><em>block=False</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.job" title="Permalink to this definition">¶</a></dt>
214<dd><p>run the decorated function on a worker</p>
215<table class="docutils field-list" frame="void" rules="none">
216<col class="field-name" />
217<col class="field-body" />
218<tbody valign="top">
219<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>block</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#bool" title="(in Python v2.7)"><em>bool</em></a>) &#8211; Set to True if you wish to block and wait for the
220response. This may be useful for running quick but cpu intesive
221that would otherwise overwhelm a box that has to do it all alone.
222(decryption?)</td>
223</tr>
224</tbody>
225</table>
226</dd></dl>
227
228<dl class="function">
229<dt id="eventmq.client.messages.send_request">
230<code class="descclassname">eventmq.client.messages.</code><code class="descname">send_request</code><span class="sig-paren">(</span><em>socket</em>, <em>message</em>, <em>reply_requested=False</em>, <em>guarantee=False</em>, <em>retry_count=0</em>, <em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.client.messages.send_request" title="Permalink to this definition">¶</a></dt>
231<dd><p>Send a REQUEST command.</p>
232<p>Default headers are always all disabled by default. If they are included in
233the headers then they have been enabled.</p>
234<p>To execute a task, the message should be formatted as follows:
235{subcommand(str), {</p>
236<blockquote>
237<div><p># dot path location where callable can be imported. If callable is a
238# method on a class, the class should always come last, and be
239# seperated with a colon. (So we know to instantiate on the receiving
240# end)
241&#8216;path&#8217;: path(str),
242# function or method name to run
243&#8216;callable&#8217;: callable(str),
244# Optional args for callable
245&#8216;args&#8217;: (arg, arg),
246# Optional kwargs for callable
247&#8216;kwargs&#8217;: {&#8216;kwarg&#8217;: kwarg},
248# Optional class args, kwargs
249&#8216;class_args&#8217;: (arg2, arg3),
250&#8216;class_kwargs&#8217;: {&#8216;kwarg2&#8217;: kwarg}</p>
251<p>}</p>
252</div></blockquote>
253<p>}
254:param socket: Socket to use when sending <cite>message</cite>
255:type socket: socket
256:param message: message to send to <cite>socket</cite>
257:param reply_requested: request the return value of func as a reply
258:type reply_requested: bool
259:param guarantee: (Give your best effort) to guarantee that func is</p>
260<blockquote>
261<div>executed. Exceptions and things will be logged.</div></blockquote>
262<table class="docutils field-list" frame="void" rules="none">
263<col class="field-name" />
264<col class="field-body" />
265<tbody valign="top">
266<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
267<li><strong>retry_count</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#int" title="(in Python v2.7)"><em>int</em></a>) &#8211; How many times should be retried when encountering
268an Exception or some other failure before giving up. (default: 0
269or immediatly fail)</li>
270<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; Name of queue to use when executing the job. Default: is
271configured default queue name</li>
272</ul>
273</td>
274</tr>
275</tbody>
276</table>
277</dd></dl>
278
279</div>
280
281
282 </div>
283 </div>
284 <footer>
285
286 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
287
288 <a href="../exceptions.html" class="btn btn-neutral float-right" title="exceptions – Exceptions" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
289
290
291 <a href="../client.html" class="btn btn-neutral" title="client – Client Utilities" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
292
293 </div>
294
295
296 <hr/>
297
298 <div role="contentinfo">
299 <p>
300 &copy; Copyright 2015, eventboard.io.
301
302 </p>
303 </div>
304 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
305
306</footer>
307
308 </div>
309 </div>
310
311 </section>
312
313 </div>
314
315
316
317
318
319 <script type="text/javascript">
320 var DOCUMENTATION_OPTIONS = {
321 URL_ROOT:'../',
322 VERSION:'0',
323 COLLAPSE_INDEX:false,
324 FILE_SUFFIX:'.html',
325 HAS_SOURCE: true
326 };
327 </script>
328 <script type="text/javascript" src="../_static/jquery.js"></script>
329 <script type="text/javascript" src="../_static/underscore.js"></script>
330 <script type="text/javascript" src="../_static/doctools.js"></script>
331
332
333
334
335
336 <script type="text/javascript" src="../_static/js/theme.js"></script>
337
338
339
340
341 <script type="text/javascript">
342 jQuery(function () {
343 SphinxRtdTheme.StickyNav.enable();
344 });
345 </script>
346
347
348</body>
349</html> \ No newline at end of file
diff --git a/genindex.html b/genindex.html
index 72ddf99..f0f6527 100644
--- a/genindex.html
+++ b/genindex.html
@@ -131,8 +131,11 @@
131<div class="genindex-jumpbox"> 131<div class="genindex-jumpbox">
132 <a href="#_"><strong>_</strong></a> 132 <a href="#_"><strong>_</strong></a>
133 | <a href="#A"><strong>A</strong></a> 133 | <a href="#A"><strong>A</strong></a>
134 | <a href="#B"><strong>B</strong></a>
134 | <a href="#C"><strong>C</strong></a> 135 | <a href="#C"><strong>C</strong></a>
136 | <a href="#D"><strong>D</strong></a>
135 | <a href="#E"><strong>E</strong></a> 137 | <a href="#E"><strong>E</strong></a>
138 | <a href="#F"><strong>F</strong></a>
136 | <a href="#G"><strong>G</strong></a> 139 | <a href="#G"><strong>G</strong></a>
137 | <a href="#H"><strong>H</strong></a> 140 | <a href="#H"><strong>H</strong></a>
138 | <a href="#I"><strong>I</strong></a> 141 | <a href="#I"><strong>I</strong></a>
@@ -203,6 +206,16 @@
203 </dl></td> 206 </dl></td>
204</tr></table> 207</tr></table>
205 208
209<h2 id="B">B</h2>
210<table style="width: 100%" class="indextable genindextable"><tr>
211 <td style="width: 33%" valign="top"><dl>
212
213 <dt><a href="client/messages.html#eventmq.client.messages.build_module_path">build_module_path() (in module eventmq.client.messages)</a>
214 </dt>
215
216 </dl></td>
217</tr></table>
218
206<h2 id="C">C</h2> 219<h2 id="C">C</h2>
207<table style="width: 100%" class="indextable genindextable"><tr> 220<table style="width: 100%" class="indextable genindextable"><tr>
208 <td style="width: 33%" valign="top"><dl> 221 <td style="width: 33%" valign="top"><dl>
@@ -225,10 +238,28 @@
225 </dl></td> 238 </dl></td>
226</tr></table> 239</tr></table>
227 240
241<h2 id="D">D</h2>
242<table style="width: 100%" class="indextable genindextable"><tr>
243 <td style="width: 33%" valign="top"><dl>
244
245 <dt><a href="client/messages.html#eventmq.client.messages.defer_job">defer_job() (in module eventmq.client.messages)</a>
246 </dt>
247
248 </dl></td>
249</tr></table>
250
228<h2 id="E">E</h2> 251<h2 id="E">E</h2>
229<table style="width: 100%" class="indextable genindextable"><tr> 252<table style="width: 100%" class="indextable genindextable"><tr>
230 <td style="width: 33%" valign="top"><dl> 253 <td style="width: 33%" valign="top"><dl>
231 254
255 <dt><a href="client.html#module-eventmq.client">eventmq.client (module)</a>
256 </dt>
257
258
259 <dt><a href="client/messages.html#module-eventmq.client.messages">eventmq.client.messages (module)</a>
260 </dt>
261
262
232 <dt><a href="exceptions.html#module-eventmq.exceptions">eventmq.exceptions (module)</a> 263 <dt><a href="exceptions.html#module-eventmq.exceptions">eventmq.exceptions (module)</a>
233 </dt> 264 </dt>
234 265
@@ -248,12 +279,12 @@
248 <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a> 279 <dt><a href="router.html#module-eventmq.router">eventmq.router (module)</a>
249 </dt> 280 </dt>
250 281
282 </dl></td>
283 <td style="width: 33%" valign="top"><dl>
251 284
252 <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a> 285 <dt><a href="sender.html#module-eventmq.sender">eventmq.sender (module)</a>
253 </dt> 286 </dt>
254 287
255 </dl></td>
256 <td style="width: 33%" valign="top"><dl>
257 288
258 <dt><a href="utils.html#module-eventmq.utils">eventmq.utils (module)</a> 289 <dt><a href="utils.html#module-eventmq.utils">eventmq.utils (module)</a>
259 </dt> 290 </dt>
@@ -277,6 +308,16 @@
277 </dl></td> 308 </dl></td>
278</tr></table> 309</tr></table>
279 310
311<h2 id="F">F</h2>
312<table style="width: 100%" class="indextable genindextable"><tr>
313 <td style="width: 33%" valign="top"><dl>
314
315 <dt><a href="utils/messages.html#eventmq.utils.messages.fwd_emqp_router_message">fwd_emqp_router_message() (in module eventmq.utils.messages)</a>
316 </dt>
317
318 </dl></td>
319</tr></table>
320
280<h2 id="G">G</h2> 321<h2 id="G">G</h2>
281<table style="width: 100%" class="indextable genindextable"><tr> 322<table style="width: 100%" class="indextable genindextable"><tr>
282 <td style="width: 33%" valign="top"><dl> 323 <td style="width: 33%" valign="top"><dl>
@@ -317,6 +358,12 @@
317<table style="width: 100%" class="indextable genindextable"><tr> 358<table style="width: 100%" class="indextable genindextable"><tr>
318 <td style="width: 33%" valign="top"><dl> 359 <td style="width: 33%" valign="top"><dl>
319 360
361 <dt><a href="client/messages.html#eventmq.client.messages.job">job() (in module eventmq.client.messages)</a>
362 </dt>
363
364 </dl></td>
365 <td style="width: 33%" valign="top"><dl>
366
320 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager">JobManager (class in eventmq.jobmanager)</a> 367 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager">JobManager (class in eventmq.jobmanager)</a>
321 </dt> 368 </dt>
322 369
@@ -388,16 +435,24 @@
388 </dt> 435 </dt>
389 436
390 </dl></dd> 437 </dl></dd>
438
439 <dt><a href="router.html#eventmq.router.Router.on_inform">on_inform() (eventmq.router.Router method)</a>
440 </dt>
441
391 </dl></td> 442 </dl></td>
392 <td style="width: 33%" valign="top"><dl> 443 <td style="width: 33%" valign="top"><dl>
393 444
394 <dt><a href="router.html#eventmq.router.Router.on_inform">on_inform() (eventmq.router.Router method)</a> 445 <dt><a href="router.html#eventmq.router.Router.on_ready">on_ready() (eventmq.router.Router method)</a>
395 </dt> 446 </dt>
396 447
397 448
398 <dt><a href="router.html#eventmq.router.Router.on_receive_request">on_receive_request() (eventmq.router.Router method)</a> 449 <dt><a href="router.html#eventmq.router.Router.on_receive_request">on_receive_request() (eventmq.router.Router method)</a>
399 </dt> 450 </dt>
400 451
452
453 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.on_request">on_request() (eventmq.jobmanager.JobManager method)</a>
454 </dt>
455
401 </dl></td> 456 </dl></td>
402</tr></table> 457</tr></table>
403 458
@@ -466,17 +521,21 @@
466 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.recv">recv() (eventmq.utils.classes.ZMQReceiveMixin method)</a> 521 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.recv">recv() (eventmq.utils.classes.ZMQReceiveMixin method)</a>
467 </dt> 522 </dt>
468 523
469 </dl></td>
470 <td style="width: 33%" valign="top"><dl>
471 524
472 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.recv_multipart">recv_multipart() (eventmq.utils.classes.ZMQReceiveMixin method)</a> 525 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQReceiveMixin.recv_multipart">recv_multipart() (eventmq.utils.classes.ZMQReceiveMixin method)</a>
473 </dt> 526 </dt>
474 527
528 </dl></td>
529 <td style="width: 33%" valign="top"><dl>
475 530
476 <dt><a href="poller.html#eventmq.poller.Poller.register">register() (eventmq.poller.Poller method)</a> 531 <dt><a href="poller.html#eventmq.poller.Poller.register">register() (eventmq.poller.Poller method)</a>
477 </dt> 532 </dt>
478 533
479 534
535 <dt><a href="router.html#eventmq.router.Router.requeue_worker">requeue_worker() (eventmq.router.Router method)</a>
536 </dt>
537
538
480 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.reset">reset() (eventmq.jobmanager.JobManager method)</a> 539 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.reset">reset() (eventmq.jobmanager.JobManager method)</a>
481 </dt> 540 </dt>
482 541
@@ -524,17 +583,25 @@
524 </dt> 583 </dt>
525 584
526 </dl></dd> 585 </dl></dd>
527 </dl></td>
528 <td style="width: 33%" valign="top"><dl>
529 586
530 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_inform">send_inform() (eventmq.jobmanager.JobManager method)</a> 587 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_inform">send_inform() (eventmq.jobmanager.JobManager method)</a>
531 </dt> 588 </dt>
532 589
590 </dl></td>
591 <td style="width: 33%" valign="top"><dl>
533 592
534 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.send_multipart">send_multipart() (eventmq.utils.classes.ZMQSendMixin method)</a> 593 <dt><a href="utils/classes.html#eventmq.utils.classes.ZMQSendMixin.send_multipart">send_multipart() (eventmq.utils.classes.ZMQSendMixin method)</a>
535 </dt> 594 </dt>
536 595
537 596
597 <dt><a href="jobmanager.html#eventmq.jobmanager.JobManager.send_ready">send_ready() (eventmq.jobmanager.JobManager method)</a>
598 </dt>
599
600
601 <dt><a href="client/messages.html#eventmq.client.messages.send_request">send_request() (in module eventmq.client.messages)</a>
602 </dt>
603
604
538 <dt><a href="router.html#eventmq.router.Router.send_workers_heartbeats">send_workers_heartbeats() (eventmq.router.Router method)</a> 605 <dt><a href="router.html#eventmq.router.Router.send_workers_heartbeats">send_workers_heartbeats() (eventmq.router.Router method)</a>
539 </dt> 606 </dt>
540 607
diff --git a/index.html b/index.html
index b8d0d7a..87da31e 100644
--- a/index.html
+++ b/index.html
@@ -132,6 +132,7 @@
132<div class="toctree-wrapper compound"> 132<div class="toctree-wrapper compound">
133<ul> 133<ul>
134<li class="toctree-l1"><a class="reference internal" href="api.html">API Documentation</a><ul> 134<li class="toctree-l1"><a class="reference internal" href="api.html">API Documentation</a><ul>
135<li class="toctree-l2"><a class="reference internal" href="client.html"><code class="docutils literal"><span class="pre">client</span></code> &#8211; Client Utilities</a></li>
135<li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li> 136<li class="toctree-l2"><a class="reference internal" href="exceptions.html"><code class="docutils literal"><span class="pre">exceptions</span></code> &#8211; Exceptions</a></li>
136<li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li> 137<li class="toctree-l2"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> &#8211; Job Manager</a></li>
137<li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li> 138<li class="toctree-l2"><a class="reference internal" href="poller.html"><code class="docutils literal"><span class="pre">poller</span></code> &#8211; Poller</a></li>
diff --git a/jobmanager.html b/jobmanager.html
index 5f3da63..638acd6 100644
--- a/jobmanager.html
+++ b/jobmanager.html
@@ -182,6 +182,38 @@ HEARTBEAT</p>
182</dd></dl> 182</dd></dl>
183 183
184<dl class="method"> 184<dl class="method">
185<dt id="eventmq.jobmanager.JobManager.on_request">
186<code class="descname">on_request</code><span class="sig-paren">(</span><em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.on_request" title="Permalink to this definition">¶</a></dt>
187<dd><p>Handles a REQUEST command</p>
188<p>Messages are formatted like this:
189[subcmd(str), {</p>
190<blockquote>
191<div>...options...</div></blockquote>
192<p>}]</p>
193<dl class="docutils">
194<dt>Subcommands:</dt>
195<dd><dl class="first last docutils">
196<dt>run - run some callable. Options:</dt>
197<dd><dl class="first docutils">
198<dt>{</dt>
199<dd><p class="first">&#8216;callable&#8217;: func or method name (eg. walk),
200&#8216;path&#8217;: module path (eg. os.path),
201&#8216;args&#8217;: (optional) list of args,
202&#8216;kwargs&#8217;: (optional) dict of kwargs,
203&#8216;class_args&#8217;: (optional) list of args for class</p>
204<blockquote>
205<div>instantiation,</div></blockquote>
206<p class="last">&#8216;class_kwargs&#8217;: (optional) dict of kwargs for class,</p>
207</dd>
208</dl>
209<p class="last">}</p>
210</dd>
211</dl>
212</dd>
213</dl>
214</dd></dl>
215
216<dl class="method">
185<dt id="eventmq.jobmanager.JobManager.process_message"> 217<dt id="eventmq.jobmanager.JobManager.process_message">
186<code class="descname">process_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.process_message" title="Permalink to this definition">¶</a></dt> 218<code class="descname">process_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.process_message" title="Permalink to this definition">¶</a></dt>
187<dd><p>Processes a message</p> 219<dd><p>Processes a message</p>
@@ -204,11 +236,18 @@ Processing takes form of calling an <cite>on_COMMAND</cite> method.</td>
204 236
205<dl class="method"> 237<dl class="method">
206<dt id="eventmq.jobmanager.JobManager.send_inform"> 238<dt id="eventmq.jobmanager.JobManager.send_inform">
207<code class="descname">send_inform</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.send_inform" title="Permalink to this definition">¶</a></dt> 239<code class="descname">send_inform</code><span class="sig-paren">(</span><em>queue=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.send_inform" title="Permalink to this definition">¶</a></dt>
208<dd><p>Send an INFORM command</p> 240<dd><p>Send an INFORM command</p>
209</dd></dl> 241</dd></dl>
210 242
211<dl class="method"> 243<dl class="method">
244<dt id="eventmq.jobmanager.JobManager.send_ready">
245<code class="descname">send_ready</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.send_ready" title="Permalink to this definition">¶</a></dt>
246<dd><p>send the READY command upstream to indicate that JobManager is ready
247for another REQUEST message.</p>
248</dd></dl>
249
250<dl class="method">
212<dt id="eventmq.jobmanager.JobManager.start"> 251<dt id="eventmq.jobmanager.JobManager.start">
213<code class="descname">start</code><span class="sig-paren">(</span><em>addr='tcp://127.0.0.1:47291'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.start" title="Permalink to this definition">¶</a></dt> 252<code class="descname">start</code><span class="sig-paren">(</span><em>addr='tcp://127.0.0.1:47291'</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.jobmanager.JobManager.start" title="Permalink to this definition">¶</a></dt>
214<dd><p>Connect to <cite>addr</cite> and begin listening for job requests</p> 253<dd><p>Connect to <cite>addr</cite> and begin listening for job requests</p>
diff --git a/objects.inv b/objects.inv
index 5094e55..40f65ba 100644
--- a/objects.inv
+++ b/objects.inv
Binary files differ
diff --git a/py-modindex.html b/py-modindex.html
index 5d49c93..e438994 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -147,6 +147,16 @@
147 <tr class="cg-1"> 147 <tr class="cg-1">
148 <td></td> 148 <td></td>
149 <td>&nbsp;&nbsp;&nbsp; 149 <td>&nbsp;&nbsp;&nbsp;
150 <a href="client.html#module-eventmq.client"><code class="xref">eventmq.client</code></a></td><td>
151 <em></em></td></tr>
152 <tr class="cg-1">
153 <td></td>
154 <td>&nbsp;&nbsp;&nbsp;
155 <a href="client/messages.html#module-eventmq.client.messages"><code class="xref">eventmq.client.messages</code></a></td><td>
156 <em></em></td></tr>
157 <tr class="cg-1">
158 <td></td>
159 <td>&nbsp;&nbsp;&nbsp;
150 <a href="exceptions.html#module-eventmq.exceptions"><code class="xref">eventmq.exceptions</code></a></td><td> 160 <a href="exceptions.html#module-eventmq.exceptions"><code class="xref">eventmq.exceptions</code></a></td><td>
151 <em></em></td></tr> 161 <em></em></td></tr>
152 <tr class="cg-1"> 162 <tr class="cg-1">
diff --git a/router.html b/router.html
index a98b4c3..1cacb79 100644
--- a/router.html
+++ b/router.html
@@ -149,7 +149,7 @@
149<dd><p>A simple router of messages</p> 149<dd><p>A simple router of messages</p>
150<dl class="method"> 150<dl class="method">
151<dt id="eventmq.router.Router.add_worker"> 151<dt id="eventmq.router.Router.add_worker">
152<code class="descname">add_worker</code><span class="sig-paren">(</span><em>id</em>, <em>queues=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.add_worker" title="Permalink to this definition">¶</a></dt> 152<code class="descname">add_worker</code><span class="sig-paren">(</span><em>worker_id</em>, <em>queues=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.add_worker" title="Permalink to this definition">¶</a></dt>
153<dd><p>Adds a worker to worker queues</p> 153<dd><p>Adds a worker to worker queues</p>
154<table class="docutils field-list" frame="void" rules="none"> 154<table class="docutils field-list" frame="void" rules="none">
155<col class="field-name" /> 155<col class="field-name" />
@@ -175,15 +175,35 @@ responded in HEARTBEAT_TIMEOUT</p>
175<dl class="method"> 175<dl class="method">
176<dt id="eventmq.router.Router.on_heartbeat"> 176<dt id="eventmq.router.Router.on_heartbeat">
177<code class="descname">on_heartbeat</code><span class="sig-paren">(</span><em>sender</em>, <em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_heartbeat" title="Permalink to this definition">¶</a></dt> 177<code class="descname">on_heartbeat</code><span class="sig-paren">(</span><em>sender</em>, <em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_heartbeat" title="Permalink to this definition">¶</a></dt>
178<dd><p>a placeholder for a noop command. The actual &#8216;logic&#8217; for HEARTBEAT is 178<dd><p>a placeholder for a no-op command. The actual &#8216;logic&#8217; for HEARTBEAT is
179in <code class="xref py py-meth docutils literal"><span class="pre">self.process_worker_message()</span></code> because any message from a worker 179in <code class="xref py py-meth docutils literal"><span class="pre">self.process_worker_message()</span></code> because any message from a
180counts as a HEARTBEAT</p> 180worker counts as a HEARTBEAT</p>
181</dd></dl> 181</dd></dl>
182 182
183<dl class="method"> 183<dl class="method">
184<dt id="eventmq.router.Router.on_inform"> 184<dt id="eventmq.router.Router.on_inform">
185<code class="descname">on_inform</code><span class="sig-paren">(</span><em>sender</em>, <em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_inform" title="Permalink to this definition">¶</a></dt> 185<code class="descname">on_inform</code><span class="sig-paren">(</span><em>sender</em>, <em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_inform" title="Permalink to this definition">¶</a></dt>
186<dd><p>Handles an INFORM message. Usually when new worker coming online</p> 186<dd><p>Handles an INFORM message. This happens when new worker coming online
187and announces itself.</p>
188</dd></dl>
189
190<dl class="method">
191<dt id="eventmq.router.Router.on_ready">
192<code class="descname">on_ready</code><span class="sig-paren">(</span><em>sender</em>, <em>msgid</em>, <em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.on_ready" title="Permalink to this definition">¶</a></dt>
193<dd><p>A worker that we should already know about is ready for another job</p>
194<table class="docutils field-list" frame="void" rules="none">
195<col class="field-name" />
196<col class="field-body" />
197<tbody valign="top">
198<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
199<li><strong>sender</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; The id of the sender</li>
200<li><strong>msgid</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 identifier for this message</li>
201<li><strong>msg</strong> &#8211; The actual message that was sent</li>
202</ul>
203</td>
204</tr>
205</tbody>
206</table>
187</dd></dl> 207</dd></dl>
188 208
189<dl class="method"> 209<dl class="method">
@@ -192,24 +212,55 @@ counts as a HEARTBEAT</p>
192<dd><p>This function is called when a message comes in from the client socket. 212<dd><p>This function is called when a message comes in from the client socket.
193It then calls <cite>on_command</cite>. If <cite>on_command</cite> isn&#8217;t found, then a 213It then calls <cite>on_command</cite>. If <cite>on_command</cite> isn&#8217;t found, then a
194warning is created.</p> 214warning is created.</p>
215<table class="docutils field-list" frame="void" rules="none">
216<col class="field-name" />
217<col class="field-body" />
218<tbody valign="top">
219<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>msg</strong> &#8211; The untouched message from zmq</td>
220</tr>
221</tbody>
222</table>
195</dd></dl> 223</dd></dl>
196 224
197<dl class="method"> 225<dl class="method">
198<dt id="eventmq.router.Router.process_worker_message"> 226<dt id="eventmq.router.Router.process_worker_message">
199<code class="descname">process_worker_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.process_worker_message" title="Permalink to this definition">¶</a></dt> 227<code class="descname">process_worker_message</code><span class="sig-paren">(</span><em>msg</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.process_worker_message" title="Permalink to this definition">¶</a></dt>
200<dd><p>This method is called when a message comes in from the worker socket. 228<dd><p>This method is called when a message comes in from the worker socket.
201It then calls <cite>on_command</cite>. If <cite>on_command</cite> isn&#8217;t found, then a warning 229It then calls <cite>on_COMMAND.lower()</cite>. If <cite>on_command</cite> isn&#8217;t found, then
202is created.</p> 230a warning is created.</p>
203<dl class="docutils"> 231<table class="docutils field-list" frame="void" rules="none">
204<dt>def on_inform(msg):</dt> 232<col class="field-name" />
205<dd>pass</dd> 233<col class="field-body" />
206</dl> 234<tbody valign="top">
235<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>msg</strong> &#8211; The untouched message from zmq</td>
236</tr>
237</tbody>
238</table>
239</dd></dl>
240
241<dl class="method">
242<dt id="eventmq.router.Router.requeue_worker">
243<code class="descname">requeue_worker</code><span class="sig-paren">(</span><em>worker_id</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.requeue_worker" title="Permalink to this definition">¶</a></dt>
244<dd><p>Add a worker back to the queue pool</p>
207</dd></dl> 245</dd></dl>
208 246
209<dl class="method"> 247<dl class="method">
210<dt id="eventmq.router.Router.send_ack"> 248<dt id="eventmq.router.Router.send_ack">
211<code class="descname">send_ack</code><span class="sig-paren">(</span><em>socket</em>, <em>recipient</em>, <em>msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_ack" title="Permalink to this definition">¶</a></dt> 249<code class="descname">send_ack</code><span class="sig-paren">(</span><em>socket</em>, <em>recipient</em>, <em>msgid</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_ack" title="Permalink to this definition">¶</a></dt>
212<dd><p>Sends an ACK response</p> 250<dd><p>Sends an ACK response</p>
251<table class="docutils field-list" frame="void" rules="none">
252<col class="field-name" />
253<col class="field-body" />
254<tbody valign="top">
255<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
256<li><strong>socket</strong> (<a class="reference external" href="https://docs.python.org/library/socket.html#module-socket" title="(in Python v2.7)"><em>socket</em></a>) &#8211; The socket to use for this ack</li>
257<li><strong>recipient</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; The recipient id for the ack</li>
258<li><strong>msgid</strong> &#8211; The unique id that we are acknowledging</li>
259</ul>
260</td>
261</tr>
262</tbody>
263</table>
213</dd></dl> 264</dd></dl>
214 265
215<dl class="method"> 266<dl class="method">
@@ -234,7 +285,7 @@ needed when building messages</p>
234<dl class="method"> 285<dl class="method">
235<dt id="eventmq.router.Router.send_workers_heartbeats"> 286<dt id="eventmq.router.Router.send_workers_heartbeats">
236<code class="descname">send_workers_heartbeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_workers_heartbeats" title="Permalink to this definition">¶</a></dt> 287<code class="descname">send_workers_heartbeats</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.router.Router.send_workers_heartbeats" title="Permalink to this definition">¶</a></dt>
237<dd><p>Send heartbeats to the registered workers.</p> 288<dd><p>Send heartbeats to all registered workers.</p>
238</dd></dl> 289</dd></dl>
239 290
240<dl class="method"> 291<dl class="method">
diff --git a/searchindex.js b/searchindex.js
index 3c9c761..e3d491a 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
Search.setIndex({envversion:46,filenames:["api","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","utils","utils/classes","utils/messages","utils/timeutils"],objects:{"eventmq.exceptions":{EventMQError:[2,5,1,""],InvalidMessageError:[2,5,1,""],MessageError:[2,5,1,""],PeerGoneAwayError:[2,5,1,""]},"eventmq.jobmanager":{JobManager:[4,4,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[4,2,1,""],on_ack:[4,2,1,""],on_heartbeat:[4,2,1,""],process_message:[4,2,1,""],reset:[4,2,1,""],send_inform:[4,2,1,""],start:[4,2,1,""]},"eventmq.poller":{Poller:[5,4,1,""]},"eventmq.poller.Poller":{"__init__":[5,2,1,""],poll:[5,2,1,""],register:[5,2,1,""],unregister:[5,2,1,""]},"eventmq.receiver":{Receiver:[7,4,1,""]},"eventmq.receiver.Receiver":{"__init__":[7,2,1,""],connect:[7,2,1,""],listen:[7,2,1,""],name:[7,1,1,""],ready:[7,1,1,""],zcontext:[7,1,1,""],zsocket:[7,1,1,""]},"eventmq.router":{Router:[8,4,1,""]},"eventmq.router.Router":{add_worker:[8,2,1,""],clean_up_dead_workers:[8,2,1,""],on_heartbeat:[8,2,1,""],on_inform:[8,2,1,""],on_receive_request:[8,2,1,""],process_worker_message:[8,2,1,""],send_ack:[8,2,1,""],send_heartbeat:[8,2,1,""],send_workers_heartbeats:[8,2,1,""],start:[8,2,1,""]},"eventmq.sender":{Sender:[9,4,1,""]},"eventmq.sender.Sender":{"__init__":[9,2,1,""],connect:[9,2,1,""],listen:[9,2,1,""],name:[9,1,1,""],ready:[9,1,1,""],rebuild:[9,2,1,""],zcontext:[9,1,1,""],zsocket:[9,1,1,""]},"eventmq.utils":{classes:[11,0,0,"-"],messages:[12,0,0,"-"],random_characters:[10,3,1,""],timeutils:[13,0,0,"-"]},"eventmq.utils.classes":{HeartbeatMixin:[11,4,1,""],ZMQReceiveMixin:[11,4,1,""],ZMQSendMixin:[11,4,1,""]},"eventmq.utils.classes.HeartbeatMixin":{"__init__":[11,2,1,""],"__weakref__":[11,1,1,""],is_dead:[11,2,1,""],reset_heartbeat_counters:[11,2,1,""],send_heartbeat:[11,2,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{"__weakref__":[11,1,1,""],recv:[11,2,1,""],recv_multipart:[11,2,1,""]},"eventmq.utils.classes.ZMQSendMixin":{"__weakref__":[11,1,1,""],send:[11,2,1,""],send_multipart:[11,2,1,""]},"eventmq.utils.messages":{generate_msgid:[12,3,1,""],parse_message:[12,3,1,""],parse_router_message:[12,3,1,""],send_emqp_message:[12,3,1,""],send_emqp_router_message:[12,3,1,""]},"eventmq.utils.timeutils":{monotonic:[13,3,1,""],seconds_until:[13,3,1,""],timestamp:[13,3,1,""]},eventmq:{exceptions:[2,0,0,"-"],jobmanager:[4,0,0,"-"],poller:[5,0,0,"-"],receiver:[7,0,0,"-"],router:[8,0,0,"-"],sender:[9,0,0,"-"],utils:[10,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","class","Python class"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:method","3":"py:function","4":"py:class","5":"py:exception"},terms:{"0mq":[6,11],"__init__":[4,5,7,9,11],"__weakref__":11,"_empty_":6,"_headers_":6,"_issu":[],"_msg_":6,"_msgid_":6,"_queue_name_":6,"_recipient_id":11,"_sourc":[],"_topic_name_":6,"_unix_ts_":6,"abstract":6,"case":[6,13],"class":[],"default":[4,6,7,9],"float":[11,13],"function":8,"import":1,"int":5,"long":5,"new":8,"public":6,"return":[1,5,7,9,10,11,12,13],"true":[6,7,9,11],"while":6,about:[4,6],absolut:1,accept:6,account:[8,12],ack:[6,8],ackd_msgid:4,acknowledg:6,act:6,actual:[4,8],add:8,add_work:8,addr:[4,7,9],address:[],after:6,agre:6,all:[2,4,6,7,9,11],allow:6,alpha:6,and_data:12,ani:[6,8],api:[],appear:5,applic:6,architectur:[],aren:[],arg:[4,5,7,8,9,11],arithmet:13,around:[],attempt:2,attr:5,automat:11,avail:[],awaiting_ack:4,back:[6,11],backend_addr:8,base:[2,5],basi:6,becaus:8,been:11,befor:[5,6],begin:[4,8],belong:6,below:6,between:6,bool:[7,9,11],boot:13,both:[5,6],broker:6,build:[8,9],built:6,bulid:7,calcul:13,call:[4,5,8],callabl:7,can:[6,12],chang:6,charact:10,check:[7,9,11],clean_up_dead_work:8,client:[],close:[4,13],code:[1,3],com:[],come:8,comma:6,command:[4,6,8,11,12],complet:6,compon:6,connction:[7,9],connect:[4,6,7,8,9,11,12],consist:6,contact:2,contain:[6,10],content:[],context:[7,9],convers:6,convienc:[5,11],count:[4,6,8,13],counter:11,creat:[8,9,10],csv:6,current:4,custom:8,data:12,deal:10,dealer:9,death:11,debug:6,def:8,defeat:6,defin:[6,7,9,11],deliv:6,describ:6,descript:6,detail:6,detect:6,determin:6,devic:[5,11,12],dialog:6,dict:5,dictionari:[5,6],differ:1,directli:[5,11],disconnect:6,distribut:6,doesn:5,down:13,dst:13,dure:9,either:6,els:[1,6],empti:6,emqp:[],encount:2,end:11,enderlab:[],ensur:[4,6],even:6,event:5,eventloop:4,eventmqerror:2,everi:4,except:[],execut:6,exist:2,explicitli:11,expos:4,extra:6,fail:6,fair:6,fals:[4,6,7,9,11],few:1,field:6,find:11,finish:6,first:6,fit:6,flag:5,follow:6,form:4,format:[6,12],found:8,foundat:6,frame:[],free:6,from:[2,4,5,6,8,13],frontend_addr:8,gener:[4,5,6,7,9,12],generate_msgid:12,github:[],gmtime:[],gnu:6,goal:[],good:11,guarante:6,guarente:[],hand:10,handl:[6,8],happen:[5,9],have:[11,12],haven:8,header:[],heartbeat:[],heartbeat_timeout:8,heartbeati:11,heartbeatmixin:11,heavi:6,here:6,hope:6,how:5,html:6,http:6,ident:[6,11],ietf:6,implement:[6,11],impli:6,includ:6,incom:[],index:3,inform:[4,6,8],inherit:2,insert:[6,11],instal:1,instanc:4,interpret:6,interv:6,invalidmessageerror:2,is_dead:11,isn:8,issu:[1,3,6],iter:5,job:[],jobmanag:[],kei:[5,6],kwarg:[4,5,7,8,9,11],languag:[],later:6,least:6,leav:6,length:10,let:6,licens:[],like:[10,11],list:11,listen:[4,7,8,9],logic:[4,8],longer:2,look:11,loop:[5,8],mai:[6,11],main:4,make:10,malform:2,manag:[],mani:[6,9],manual:6,master:6,member:8,merchant:6,mess:13,messag:[],message_bodi:12,message_id:12,messageerror:2,met:11,meta:12,method:[4,5,8,11],mode:[],modifi:6,modul:[3,10],monoton:[11,13],more:[6,10],msg:[4,6,8,12],msg_id:[],msgid:[4,8],multipart:[6,11],must:[6,11],name:[4,6,7,8,9],need:[8,9],never:13,next:5,none:[7,8,9,11,12],noop:[4,8],note:[4,7,9],now:11,number:13,object:[5,11],occur:11,on_ack:4,on_command:[4,8],on_heartbeat:[4,8],on_inform:8,on_receive_repli:[],on_receive_request:8,on_recv:7,onc:6,onli:[],onlin:8,option:[4,6,7,9,12],org:6,orient:6,origin:6,other:6,otherwis:[4,7,9,11],out:11,own:11,page:3,param:[],paramet:[4,5,7,8,9,11,12],pars:[4,12],parse_messag:12,parse_router_messag:12,part:[6,12],particular:[6,9],pass:[6,7,8],peer:[2,6,11],peergoneawayerror:2,pictur:6,placehold:[4,8],poll:5,poller:[],pollin:5,pollout:5,pool:6,portion:4,possibl:1,practic:11,prefix:12,prepend:6,pretti:6,problem:2,process:[4,6,9],process_messag:4,process_worker_messag:8,prop:[],properti:[7,9],protocol:[],protocol_vers:11,provid:[8,11],pub:6,publish:6,purpos:6,queue:[6,8],rais:[2,7,9,12],random:[10,12],random_charact:10,raw:11,raw_messag:[],readi:[6,7,9],rebuild:9,receiv:[],recent:6,reciev:[],recip:[],recipi:[8,11,12],recipient_id:12,recommend:6,reconnect:9,recv:11,recv_multipart:11,redistribut:6,refer:11,regist:[5,8],regular:6,rel:1,reliabl:6,remain:5,remov:[6,8],reopen:4,rep:7,repli:[6,12],req:9,request:[],requir:6,requri:6,reset:[4,11],reset_heartbeat_count:11,resourc:[4,6],respond:[6,8],respons:[4,7,8,9],restart:[6,9],retri:6,rfc2119:6,rfc:6,robin:6,roughli:9,round:6,rout:[6,8],router:[],run:4,same:9,search:3,second:13,seconds_until:13,see:[5,6],self:[4,8,9],send:[2,4,6,8,9,11,12],send_ack:8,send_emqp_messag:12,send_emqp_router_messag:12,send_heartbeat:[8,11],send_inform:4,send_messag:[],send_multipart:11,send_raw:[],send_workers_heartbeat:8,sender:[],sender_id:12,sent:[6,11],seper:6,serv:6,server:[4,6],servic:6,set:[4,5,6,9,11],shall:6,should:[2,5,6,7,8,9],shown:6,simpl:[8,10],sinc:13,singl:6,skip:[9,11],skip_zmqstream:9,socket:[4,5,6,7,8,9,11,12],softwar:6,some:[10,11,12],someon:6,someth:[9,11,13],somewher:1,sourc:[1,3],spawn:4,specif:[],specifi:[6,10,11],start:[4,7,8,9],state:11,statu:6,stop:6,str:[4,7,8,9,10,11,12],string:[4,6,7,8,9,12],structur:2,sub:6,subclass:2,subject:6,subset:6,subtract:13,success:6,system:1,take:[4,8,9,12],task:4,tcp:[4,8],term:6,thei:[],them:7,thi:[2,4,5,6,7,8,9,10,11,13],thing:[4,9,10,11,12],threshold:11,through:[6,8],time:[],timeout:5,timestamp:[6,13],timeutil:[],timezon:[],tip:1,tool:6,topic:[],topolog:[],tornado:4,trace:6,track:11,tupl:[5,11,12],type:[6,7,9,10,11],typecast:5,typeerror:7,undefin:5,under:6,uniqu:[4,6,8],univers:[],unix:6,unless:[4,7,9],unregist:5,until:13,unus:[],upon:6,usual:8,utilit:[],uuid:[4,7,9],valid:6,valu:[5,6,11,12,13],variabl:11,version:[1,6,11],via:[],wait:5,warn:8,warranti:6,weak:11,web:6,well:6,when:[1,2,6,7,8,9,11],where:[6,13],which:6,who:8,wish:12,without:[6,9],word:6,work:[1,11],worker:[],worker_id:8,worri:6,would:13,wrap:[],you:[1,6,9,11,12],your:[6,11],zcontext:[7,9],zeromq:6,zmq:[5,6,7,9,11,12],zmqreceivemixin:11,zmqsendmixin:11,zmqstream:9,zsocket:[7,9]},titles:["API Documentation","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> &#8211; Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> &#8211; Poller","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> &#8211; Utilities","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> &#8211; Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> &#8211; Time Utilites"],titleterms:{"class":11,address:6,api:0,architectur:6,client:6,contribut:1,document:[0,3],emqp:6,eventmq:[1,3,6],except:2,frame:6,global:6,goal:6,header:6,heartbeat:6,indic:3,job:4,jobmanag:4,languag:6,licens:6,manag:4,messag:12,poller:5,protocol:6,receiv:7,request:6,router:[6,8],sender:9,specif:6,tabl:3,time:13,timeutil:13,topolog:6,util:[10,11,12],utilit:13,welcom:[],worker:6}}) \ No newline at end of file Search.setIndex({envversion:46,filenames:["api","client","client/messages","contributing","exceptions","index","jobmanager","poller","protocol","receiver","router","sender","style","utils","utils/classes","utils/messages","utils/timeutils"],objects:{"eventmq.client":{messages:[2,0,0,"-"]},"eventmq.client.messages":{build_module_path:[2,2,1,""],defer_job:[2,2,1,""],job:[2,2,1,""],send_request:[2,2,1,""]},"eventmq.exceptions":{EventMQError:[4,5,1,""],InvalidMessageError:[4,5,1,""],MessageError:[4,5,1,""],PeerGoneAwayError:[4,5,1,""]},"eventmq.jobmanager":{JobManager:[6,4,1,""]},"eventmq.jobmanager.JobManager":{"__init__":[6,3,1,""],on_ack:[6,3,1,""],on_heartbeat:[6,3,1,""],on_request:[6,3,1,""],process_message:[6,3,1,""],reset:[6,3,1,""],send_inform:[6,3,1,""],send_ready:[6,3,1,""],start:[6,3,1,""]},"eventmq.poller":{Poller:[7,4,1,""]},"eventmq.poller.Poller":{"__init__":[7,3,1,""],poll:[7,3,1,""],register:[7,3,1,""],unregister:[7,3,1,""]},"eventmq.receiver":{Receiver:[9,4,1,""]},"eventmq.receiver.Receiver":{"__init__":[9,3,1,""],connect:[9,3,1,""],listen:[9,3,1,""],name:[9,1,1,""],ready:[9,1,1,""],zcontext:[9,1,1,""],zsocket:[9,1,1,""]},"eventmq.router":{Router:[10,4,1,""]},"eventmq.router.Router":{add_worker:[10,3,1,""],clean_up_dead_workers:[10,3,1,""],on_heartbeat:[10,3,1,""],on_inform:[10,3,1,""],on_ready:[10,3,1,""],on_receive_request:[10,3,1,""],process_worker_message:[10,3,1,""],requeue_worker:[10,3,1,""],send_ack:[10,3,1,""],send_heartbeat:[10,3,1,""],send_workers_heartbeats:[10,3,1,""],start:[10,3,1,""]},"eventmq.sender":{Sender:[11,4,1,""]},"eventmq.sender.Sender":{"__init__":[11,3,1,""],connect:[11,3,1,""],listen:[11,3,1,""],name:[11,1,1,""],ready:[11,1,1,""],rebuild:[11,3,1,""],zcontext:[11,1,1,""],zsocket:[11,1,1,""]},"eventmq.utils":{classes:[14,0,0,"-"],messages:[15,0,0,"-"],random_characters:[13,2,1,""],timeutils:[16,0,0,"-"]},"eventmq.utils.classes":{HeartbeatMixin:[14,4,1,""],ZMQReceiveMixin:[14,4,1,""],ZMQSendMixin:[14,4,1,""]},"eventmq.utils.classes.HeartbeatMixin":{"__init__":[14,3,1,""],"__weakref__":[14,1,1,""],is_dead:[14,3,1,""],reset_heartbeat_counters:[14,3,1,""],send_heartbeat:[14,3,1,""]},"eventmq.utils.classes.ZMQReceiveMixin":{"__weakref__":[14,1,1,""],recv:[14,3,1,""],recv_multipart:[14,3,1,""]},"eventmq.utils.classes.ZMQSendMixin":{"__weakref__":[14,1,1,""],send:[14,3,1,""],send_multipart:[14,3,1,""]},"eventmq.utils.messages":{fwd_emqp_router_message:[15,2,1,""],generate_msgid:[15,2,1,""],parse_message:[15,2,1,""],parse_router_message:[15,2,1,""],send_emqp_message:[15,2,1,""],send_emqp_router_message:[15,2,1,""]},"eventmq.utils.timeutils":{monotonic:[16,2,1,""],seconds_until:[16,2,1,""],timestamp:[16,2,1,""]},eventmq:{client:[1,0,0,"-"],exceptions:[4,0,0,"-"],jobmanager:[6,0,0,"-"],poller:[7,0,0,"-"],receiver:[9,0,0,"-"],router:[10,0,0,"-"],sender:[11,0,0,"-"],utils:[13,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","attribute","Python attribute"],"2":["py","function","Python function"],"3":["py","method","Python method"],"4":["py","class","Python class"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:attribute","2":"py:function","3":"py:method","4":"py:class","5":"py:exception"},terms:{"0mq":[8,14],"__init__":[6,7,9,11,14],"__weakref__":14,"_empty_":8,"_headers_":8,"_issu":[],"_msg_":8,"_msgid_":8,"_queue_name_":8,"_recipient_id":14,"_sourc":[],"_topic_name_":8,"_unix_ts_":8,"abstract":8,"case":[8,16],"class":[],"default":[2,6,8,9,11],"float":[14,16],"function":[2,10],"import":[2,3],"int":[2,7],"long":7,"new":10,"public":8,"return":[2,3,7,9,11,13,14,15,16],"true":[2,8,9,11,14],"while":8,about:[6,8,10],absolut:3,accept:8,account:[10,15],ack:[8,10],ackd_msgid:6,acknowledg:[8,10],act:[1,8],actual:[6,10],add:10,add_work:10,addr:[6,9,11],address:[],after:8,agre:8,all:[2,4,6,8,9,10,11,14],allow:8,alon:2,alpha:8,alreadi:10,alwai:2,and_data:15,ani:[2,8,10],announc:10,anoth:[6,10],api:[],appear:7,applic:[2,8],architectur:[],aren:[],arg2:2,arg3:2,arg:[2,6,7,9,10,11,14],arithmet:16,around:[],attempt:4,attr:7,automat:14,avail:[],awaiting_ack:6,back:[8,10,14],backend_addr:10,base:[4,7],basi:8,becaus:10,been:[2,14],befor:[2,7,8],begin:[6,10],belong:8,below:8,best:2,between:8,block:2,bool:[2,9,11,14],boot:16,both:[7,8],box:2,broker:8,build:[2,10,11],build_module_path:2,built:8,bulid:9,calcul:16,call:[6,7,10],callabl:[2,6,9],can:[1,2,8,15],chang:8,charact:13,check:[2,9,11,14],class_arg:[2,6],class_kwarg:[2,6],clean_up_dead_work:10,client:[],close:[6,16],code:[3,5],colon:2,column:12,com:[],come:[2,10],comma:8,command:[2,6,8,10,14,15],complet:8,compon:8,configur:2,connction:[9,11],connect:[6,8,9,10,11,14,15],consist:8,contact:4,contain:[1,8,13],content:[],context:[9,11],convers:8,convienc:[7,14],count:[6,8,10,16],counter:14,cpu:2,creat:[10,11,13],cross:12,csv:8,current:6,custom:10,data:15,deal:13,dealer:11,death:14,debug:8,decor:2,decrypt:2,def:[],defeat:8,defer:2,defer_job:2,defin:[8,9,11,14],deliv:8,describ:8,descript:8,detail:[2,8],detect:8,determin:8,devic:[7,14,15],dialog:8,dict:[2,6,7],dictionari:[7,8],did:2,differ:3,directli:[7,14],disabl:2,disconnect:8,distribut:8,doesn:7,dot:2,down:16,dst:16,dure:11,effort:2,either:8,els:[3,8],empti:8,emqp:[],enabl:2,encount:[2,4],end:[2,14],enderlab:[],ensur:[6,8],error:2,even:8,event:7,eventloop:6,eventmqerror:4,everi:6,except:[],execut:[2,8],exist:4,explicitli:14,expos:6,extra:8,fail:[2,8],failur:2,fair:8,fals:[2,6,8,9,11,14],few:3,field:8,file:12,find:14,finish:8,first:8,fit:8,flag:[2,7],follow:[2,8],form:6,format:[2,6,8,15],forward:15,found:10,foundat:8,frame:[],free:8,from:[4,6,7,8,10,16],frontend_addr:10,func:[2,6],fwd_emqp_router_messag:15,gener:[6,7,8,9,11,15],generate_msgid:15,github:[],give:2,gmtime:[],gnu:8,goal:[],good:14,guarante:[2,8],guarente:2,hand:13,handl:[6,8,10],happen:[7,10,11],have:[2,14,15],haven:10,header:[],heartbeat:[],heartbeat_timeout:10,heartbeati:14,heartbeatmixin:14,heavi:8,here:8,hope:8,how:[2,7],html:8,http:8,ident:8,identifi:10,ietf:8,immediatli:2,implement:[8,14],impli:8,includ:[2,8],incom:[],index:5,inform:[6,8,10],inherit:4,initi:2,insert:[8,14],instal:3,instanc:6,instanti:[2,6],interpret:8,interv:8,intes:2,invalidmessageerror:4,is_dead:14,isn:10,issu:[3,5,8],iter:7,itself:10,job:[],jobmanag:[],kei:[7,8],know:[2,10],kwarg2:2,kwarg:[2,6,7,9,10,11,14],languag:[],last:2,later:8,least:8,leav:8,length:13,let:8,licens:[],like:[6,13,14],list:[2,6,14],listen:[6,9,10,11],locat:2,log:2,logic:[6,10],longer:4,look:14,loop:[7,10],lower:10,mai:[2,8,14],main:6,make:13,malform:4,manag:[],mani:[2,8,11],manual:8,master:8,member:10,merchant:8,mess:16,messag:[],message_bodi:15,message_id:15,messageerror:4,met:14,meta:15,method:[2,6,7,10,14],mode:[],modifi:8,modul:[1,2,5,6,13],monoton:[14,16],more:[8,13],msg:[6,8,10,15],msg_id:[],msgid:[6,10],multipart:[8,14],must:[8,14],name:[2,6,8,9,10,11],need:[10,11],never:16,next:7,none:[2,6,9,10,11,14,15],noop:6,note:[6,9,11],now:14,number:16,object:[7,14],occur:14,on_ack:6,on_command:[6,10],on_heartbeat:[6,10],on_inform:10,on_readi:10,on_receive_repli:[],on_receive_request:10,on_recv:9,on_request:6,onc:8,onli:[],onlin:10,option:[2,6,8,9,11,15],org:8,orient:8,origin:8,other:[2,8],otherwis:[2,6,9,11,14],out:14,overwhelm:2,own:14,page:5,param:2,paramet:[2,6,7,9,10,11,14,15],pars:[6,15],parse_messag:15,parse_router_messag:15,part:[8,15],particular:[8,11],pass:[2,8,9],path:[2,6],payload:15,peer:[4,8,14],peergoneawayerror:4,pictur:8,placehold:[6,10],poll:7,poller:[],pollin:7,pollout:7,pool:[8,10],portion:6,possibl:3,practic:14,prefix:15,prepend:8,pretti:8,problem:4,process:[6,8,11],process_messag:6,process_worker_messag:10,prop:[],properti:[9,11],protocol:[],protocol_vers:14,provid:[10,14],pub:8,publish:8,purpos:8,queu:2,queue:[2,6,8,10],quick:2,rais:[2,4,9,11,15],random:[13,15],random_charact:13,raw:14,raw_messag:[],readi:[6,8,9,10,11],rebuild:11,receiv:[],recent:8,reciev:[],recip:[],recipi:[10,14,15],recipient_id:15,recommend:8,reconnect:11,recv:14,recv_multipart:14,redistribut:8,refer:14,regist:[7,10],regular:8,rel:3,reliabl:8,remain:7,remot:14,remov:[8,10],reopen:6,rep:9,repli:[2,8,15],reply_request:2,req:11,request:[],requeue_work:10,requir:8,requri:8,reset:[6,14],reset_heartbeat_count:14,resourc:[6,8],respond:[8,10],respons:[2,6,9,10,11],restart:[8,11],retri:[2,8],retry_count:2,rfc2119:8,rfc:8,robin:8,roughli:11,round:8,rout:[8,10],router:[],run:[2,6],same:11,search:5,second:16,seconds_until:16,see:[7,8],self:[6,10,11],send:[2,4,6,8,10,11,14,15],send_ack:10,send_emqp_messag:15,send_emqp_router_messag:15,send_heartbeat:[10,14],send_inform:6,send_messag:[],send_multipart:14,send_raw:[],send_readi:6,send_request:2,send_workers_heartbeat:10,sender:[],sender_id:15,sent:[8,10,14],seper:[2,8],serv:8,server:[6,8],servic:8,set:[2,6,7,8,11,14],shall:8,shalt:12,should:[2,4,7,8,9,10,11],shown:8,simpl:[10,13],sinc:16,singl:8,skip:[11,14],skip_zmqstream:11,socket:[2,6,7,8,9,10,11,14,15],softwar:8,some:[2,6,13,14,15],someon:8,someth:[2,11,14,16],somewher:3,sourc:[3,5],spawn:6,specif:[],specifi:[8,13,14],start:[6,9,10,11],state:14,statu:8,stop:8,str:[2,6,9,10,11,13,14,15],string:[2,6,8,9,10,11,15],structur:4,sub:8,subclass:4,subcmd:6,subcommand:[2,6],subject:8,subset:8,subtract:16,success:8,successfulli:2,system:3,take:[6,10,11,15],task:[2,6],tcp:[6,10],term:8,thei:2,them:9,thi:[1,2,4,6,7,8,9,10,11,13,14,16],thing:[2,6,11,13,14,15],thou:12,threshold:14,through:[8,10],thy:12,time:[],timeout:7,timestamp:[8,16],timeutil:[],timezon:[],tip:3,tool:8,topic:[],topolog:[],tornado:6,trace:8,track:14,tri:2,tupl:[7,14,15],type:[2,8,9,11,13,14],typecast:7,typeerror:9,undefin:7,under:8,uniqu:[6,8,10],univers:[],unix:8,unless:[6,9,11],unregist:7,until:16,untouch:[10,15],unus:[],upon:8,upstream:6,usual:[],utilit:[],uuid:[6,9,11],valid:8,valu:[2,7,8,14,15,16],variabl:14,version:[3,8,14],via:2,wait:[2,7],walk:6,warn:10,warranti:8,weak:14,web:8,well:8,went:2,when:[1,2,3,4,8,9,10,11,14],where:[2,8,16],which:8,who:[1,10],wish:[2,15],without:[8,11],word:8,work:[3,14],worker:[],worker_id:10,worri:8,would:[2,16],wrap:[],wrong:2,you:[2,3,8,11,14,15],your:[2,8,14],zcontext:[9,11],zeromq:8,zmq:[7,8,9,10,11,14,15],zmqreceivemixin:14,zmqsendmixin:14,zmqstream:11,zsocket:[9,11]},titles:["API Documentation","<code class=\"docutils literal\"><span class=\"pre\">client</span></code> &#8211; Client Utilities","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Client Messaging","Contributing to EventMQ","<code class=\"docutils literal\"><span class=\"pre\">exceptions</span></code> &#8211; Exceptions","EventMQ Documentation","<code class=\"docutils literal\"><span class=\"pre\">jobmanager</span></code> &#8211; Job Manager","<code class=\"docutils literal\"><span class=\"pre\">poller</span></code> &#8211; Poller","EventMQ Protocol Specification","<code class=\"docutils literal\"><span class=\"pre\">receiver</span></code> &#8211; Receiver","<code class=\"docutils literal\"><span class=\"pre\">router</span></code> &#8211; Router","<code class=\"docutils literal\"><span class=\"pre\">sender</span></code> &#8211; Sender","Style Guide","<code class=\"docutils literal\"><span class=\"pre\">utils</span></code> &#8211; Utilities","<code class=\"docutils literal\"><span class=\"pre\">classes</span></code> &#8211; Utility Classes","<code class=\"docutils literal\"><span class=\"pre\">messages</span></code> &#8211; Message Utilities","<code class=\"docutils literal\"><span class=\"pre\">timeutils</span></code> &#8211; Time Utilites"],titleterms:{"class":14,address:8,api:0,architectur:8,client:[1,2,8],contribut:3,document:[0,5],emqp:8,eventmq:[3,5,8],except:4,frame:8,global:8,goal:8,guid:12,header:8,heartbeat:8,indic:5,job:6,jobmanag:6,languag:8,licens:8,manag:6,messag:[2,15],poller:7,protocol:8,receiv:9,request:8,router:[8,10],sender:11,specif:8,style:12,tabl:5,time:16,timeutil:16,topolog:8,util:[1,13,14,15],utilit:16,welcom:[],worker:8}}) \ No newline at end of file
diff --git a/style.html b/style.html
new file mode 100644
index 0000000..f0e6e65
--- /dev/null
+++ b/style.html
@@ -0,0 +1,197 @@
1
2
3<!DOCTYPE html>
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6<head>
7 <meta charset="utf-8">
8
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11 <title>Style Guide &mdash; EventMQ 0 documentation</title>
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
28
29
30
31
32
33 <link rel="top" title="EventMQ 0 documentation" href="index.html"/>
34
35
36 <script src="_static/js/modernizr.min.js"></script>
37
38</head>
39
40<body class="wy-body-for-nav" role="document">
41
42 <div class="wy-grid-for-nav">
43
44
45 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
46 <div class="wy-side-scroll">
47 <div class="wy-side-nav-search">
48
49
50
51 <a href="index.html" class="icon icon-home"> EventMQ
52
53
54
55 </a>
56
57
58
59
60 <div class="version">
61 0
62 </div>
63
64
65
66
67<div role="search">
68 <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
69 <input type="text" name="q" placeholder="Search docs" />
70 <input type="hidden" name="check_keywords" value="yes" />
71 <input type="hidden" name="area" value="default" />
72 </form>
73</div>
74
75
76 </div>
77
78 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
79
80
81
82 <ul>
83<li class="toctree-l1"><a class="reference internal" href="api.html">API Documentation</a></li>
84<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to EventMQ</a></li>
85</ul>
86
87
88
89 </div>
90 </div>
91 </nav>
92
93 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
94
95
96 <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
97 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
98 <a href="index.html">EventMQ</a>
99 </nav>
100
101
102
103 <div class="wy-nav-content">
104 <div class="rst-content">
105
106
107
108
109
110
111<div role="navigation" aria-label="breadcrumbs navigation">
112 <ul class="wy-breadcrumbs">
113 <li><a href="index.html">Docs</a> &raquo;</li>
114
115 <li>Style Guide</li>
116 <li class="wy-breadcrumbs-aside">
117
118
119 <a href="_sources/style.txt" rel="nofollow"> View page source</a>
120
121
122 </li>
123 </ul>
124 <hr/>
125</div>
126 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
127 <div itemprop="articleBody">
128
129 <div class="section" id="style-guide">
130<h1>Style Guide<a class="headerlink" href="#style-guide" title="Permalink to this headline">¶</a></h1>
131<blockquote>
132<div><ul class="simple">
133<li>Thou shalt not cross 80 columns in thy file</li>
134</ul>
135</div></blockquote>
136</div>
137
138
139 </div>
140 </div>
141 <footer>
142
143
144 <hr/>
145
146 <div role="contentinfo">
147 <p>
148 &copy; Copyright 2015, eventboard.io.
149
150 </p>
151 </div>
152 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
153
154</footer>
155
156 </div>
157 </div>
158
159 </section>
160
161 </div>
162
163
164
165
166
167 <script type="text/javascript">
168 var DOCUMENTATION_OPTIONS = {
169 URL_ROOT:'./',
170 VERSION:'0',
171 COLLAPSE_INDEX:false,
172 FILE_SUFFIX:'.html',
173 HAS_SOURCE: true
174 };
175 </script>
176 <script type="text/javascript" src="_static/jquery.js"></script>
177 <script type="text/javascript" src="_static/underscore.js"></script>
178 <script type="text/javascript" src="_static/doctools.js"></script>
179
180
181
182
183
184 <script type="text/javascript" src="_static/js/theme.js"></script>
185
186
187
188
189 <script type="text/javascript">
190 jQuery(function () {
191 SphinxRtdTheme.StickyNav.enable();
192 });
193 </script>
194
195
196</body>
197</html> \ No newline at end of file
diff --git a/utils/classes.html b/utils/classes.html
index 15ed5e6..4730048 100644
--- a/utils/classes.html
+++ b/utils/classes.html
@@ -270,9 +270,9 @@ you may explicitly specify None to skip adding the version</li>
270<code class="descname">send_multipart</code><span class="sig-paren">(</span><em>message</em>, <em>protocol_version</em>, <em>_recipient_id=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.ZMQSendMixin.send_multipart" title="Permalink to this definition">¶</a></dt> 270<code class="descname">send_multipart</code><span class="sig-paren">(</span><em>message</em>, <em>protocol_version</em>, <em>_recipient_id=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.classes.ZMQSendMixin.send_multipart" title="Permalink to this definition">¶</a></dt>
271<dd><p>Send a message directly to the 0mq socket. Automatically inserts some 271<dd><p>Send a message directly to the 0mq socket. Automatically inserts some
272frames for your convience. The sent frame ends up looking something 272frames for your convience. The sent frame ends up looking something
273like identity</p> 273like this</p>
274<blockquote> 274<blockquote>
275<div>(this, &#8216;&#8217;, protocol_version) + (your, tuple)</div></blockquote> 275<div>(_recipient_id, &#8216;&#8217;, protocol_version) + (your, tuple)</div></blockquote>
276<table class="docutils field-list" frame="void" rules="none"> 276<table class="docutils field-list" frame="void" rules="none">
277<col class="field-name" /> 277<col class="field-name" />
278<col class="field-body" /> 278<col class="field-body" />
@@ -282,7 +282,7 @@ like identity</p>
282<li><strong>protocol_version</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; protocol version. it&#8217;s good practice but 282<li><strong>protocol_version</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#str" title="(in Python v2.7)"><em>str</em></a>) &#8211; protocol version. it&#8217;s good practice but
283you may explicitly specify None to skip adding the version</li> 283you may explicitly specify None to skip adding the version</li>
284<li><strong>_recipient_id</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#object" title="(in Python v2.7)"><em>object</em></a>) &#8211; When using a <code class="xref py py-attr docutils literal"><span class="pre">zmq.ROUTER</span></code> you must 284<li><strong>_recipient_id</strong> (<a class="reference external" href="https://docs.python.org/library/functions.html#object" title="(in Python v2.7)"><em>object</em></a>) &#8211; When using a <code class="xref py py-attr docutils literal"><span class="pre">zmq.ROUTER</span></code> you must
285specify the the recipient id of the</li> 285specify the the recipient id of the remote socket</li>
286</ul> 286</ul>
287</td> 287</td>
288</tr> 288</tr>
diff --git a/utils/messages.html b/utils/messages.html
index 347920b..b83d630 100644
--- a/utils/messages.html
+++ b/utils/messages.html
@@ -150,6 +150,12 @@
150 <span class="target" id="module-eventmq.utils.messages"></span><div class="section" id="messages-message-utilities"> 150 <span class="target" id="module-eventmq.utils.messages"></span><div class="section" id="messages-message-utilities">
151<h1><code class="xref py py-mod docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities<a class="headerlink" href="#messages-message-utilities" title="Permalink to this headline">¶</a></h1> 151<h1><code class="xref py py-mod docutils literal"><span class="pre">messages</span></code> &#8211; Message Utilities<a class="headerlink" href="#messages-message-utilities" title="Permalink to this headline">¶</a></h1>
152<dl class="function"> 152<dl class="function">
153<dt id="eventmq.utils.messages.fwd_emqp_router_message">
154<code class="descclassname">eventmq.utils.messages.</code><code class="descname">fwd_emqp_router_message</code><span class="sig-paren">(</span><em>socket</em>, <em>recipient_id</em>, <em>payload</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.messages.fwd_emqp_router_message" title="Permalink to this definition">¶</a></dt>
155<dd><p>Forwards <cite>payload</cite> to socket untouched.</p>
156</dd></dl>
157
158<dl class="function">
153<dt id="eventmq.utils.messages.generate_msgid"> 159<dt id="eventmq.utils.messages.generate_msgid">
154<code class="descclassname">eventmq.utils.messages.</code><code class="descname">generate_msgid</code><span class="sig-paren">(</span><em>prefix=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.messages.generate_msgid" title="Permalink to this definition">¶</a></dt> 160<code class="descclassname">eventmq.utils.messages.</code><code class="descname">generate_msgid</code><span class="sig-paren">(</span><em>prefix=None</em><span class="sig-paren">)</span><a class="headerlink" href="#eventmq.utils.messages.generate_msgid" title="Permalink to this definition">¶</a></dt>
155<dd><p>Returns a random string to be used for message ids. Optionally the ID can 161<dd><p>Returns a random string to be used for message ids. Optionally the ID can