Popular recipes tagged "framework" and "application"http://code.activestate.com/recipes/tags/framework+application/2015-06-30T03:24:07-07:00ActiveState Code RecipesConsumer Application Skeleton (Python)
2015-06-30T03:24:07-07:00Vovanhttp://code.activestate.com/recipes/users/4192447/http://code.activestate.com/recipes/579074-consumer-application-skeleton/
<p style="color: grey">
Python
recipe 579074
by <a href="/recipes/users/4192447/">Vovan</a>
(<a href="/recipes/tags/application/">application</a>, <a href="/recipes/tags/consumer/">consumer</a>, <a href="/recipes/tags/daemon/">daemon</a>, <a href="/recipes/tags/framework/">framework</a>).
Revision 2.
</p>
<h4 id="consumer-application-skeleton">Consumer Application Skeleton</h4>
<p>This is very basic skeleton for data processing application implementing
consumer pattern:</p>
<pre class="prettyprint"><code>while is_running():
task = get_next_task_from_queue()
if task:
submit_task_for_processing(task)
else:
sleep_for_a_moment()
</code></pre>
<p>Here's an example:</p>
<pre class="prettyprint"><code>class ExampleApp(ConsumerAppBase):
def _get_next_task(self):
# Get next task from the queue.
return self._queue.next()
def _run_task(self, task):
# This code's being executed in separate worker thread of
# ThreadPoolExecutor
return task / 2
def _on_task_done(self, task, future):
# Once worker thread finished - task results are available
# in _on_task_done() callback as a concurrent.futures.Future object.
self._log.info('Task done. Result: %s', future.result())
</code></pre>