In order to support tasks notifications and progress updates we need to establish a channel & proxy by which those events can be sent from the process executing and producing those events and the originating process that requested that task to be executed. This review adds on such a proxy and adjusts a cloned tasks notification callbacks to place messages on a queue that will be picked up by a thread in the originating process for dispatch to the original callbacks that were registered with the non-cloned task (therefore making the original callbacks appear to be called as they are supposed to be). Part of blueprint process-executor Change-Id: I01c83f13186e4be9fa28c32e34e907bb133e8fb3
TaskFlow
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.
- Free software: Apache license
- Documentation: http://docs.openstack.org/developer/taskflow
- Source: http://git.openstack.org/cgit/openstack/taskflow
- Bugs: http://bugs.launchpad.net/taskflow/
Join us
Testing and requirements
Requirements
Because TaskFlow has many optional (pluggable) parts like persistence
backends and engines, we decided to split our requirements into two
parts: - things that are absolutely required by TaskFlow (you can't use
TaskFlow without them) are put into requirements-pyN.txt
(N being the Python major version number used to
install the package); - things that are required by some optional part
of TaskFlow (you can use TaskFlow without them) are put into
optional-requirements.txt; if you want to use the feature
in question, you should add that requirements to your project or
environment; - as usual, things that required only for running tests are
put into test-requirements.txt.
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