Go to file
Joshua Harlow c5e9cf28df Instead of a multiprocessing queue use sockets via asyncore
For a local process based executor usage currently to ensure
that task emitted notifications are proxied we use the multi
processing library and use its queue concept. This sadly creates
a proxy process that gets associated, and this proxy process
handles the queue and messages sent to and from it. Instead of
doing this we can instead just create a temporary local socket
using a random socket and have tasks (which are running in
different processes) use that to communicate back any emitted
notifications instead (and we can use the asyncore module to handle
the emitted notifications since it handles the lower level socket
reading, polling and dispatching).

To ensure that the socket created is somewhat secure we use a
similar process as the multi-processing library uses where we
sign all messages with a hmac that uses a one time key that only
the main process and the child process know about (and reject
any messages that do not validate using this key).

Change-Id: Iff9180054bf14495e5667af00ae2fafbdbc23791
2016-05-24 16:16:56 -07:00
2014-02-07 20:45:32 +00:00
2013-09-17 13:27:27 -07:00
2013-05-07 10:49:44 -07:00
2014-01-02 10:38:15 -08:00
2015-09-18 16:43:06 +00:00

TaskFlow

Latest Version

Downloads

A library to do [jobs, tasks, flows] in a highly available, easy to understand and declarative manner (and more!) to be used with OpenStack and other projects.

Join us

Testing and requirements

Requirements

Because this project has many optional (pluggable) parts like persistence backends and engines, we decided to split our requirements into two parts: - things that are absolutely required (you can't use the project without them) are put into requirements.txt. The requirements that are required by some optional part of this project (you can use the project without them) are put into our test-requirements.txt file (so that we can still test the optional functionality works as expected). If you want to use the feature in question (eventlet or the worker based engine that uses kombu or the sqlalchemy persistence backend or jobboards which have an implementation built using kazoo ...), you should add that requirement(s) to your project or environment.

Tox.ini

Our tox.ini file describes several test environments that allow to test TaskFlow with different python versions and sets of requirements installed. Please refer to the tox documentation to understand how to make these test environments work for you.

Developer documentation

We also have sphinx documentation in docs/source.

To build it, run:

$ python setup.py build_sphinx
Description
RETIRED, further work has moved to Debian project infrastructure
Readme 4.8 MiB