Go to file
Joshua Harlow a0cc12db18 Speed up memory backend via a path -> node reverse mapping
A simple reverse mapping/dict is added and used to avoid
repeated linear finding of paths, and metadata (and a little
tiny helper inode class) is added so that each node knows
its full path (avoiding repeated traversal to determine
this same info).

For linear flow with 500 'dummy' nodes on an old machine
running python 2.6 (your numbers will vary):

Old
---

Took 0.255 seconds to run building
Took 0.456 seconds to run compiling
Took 50.039 seconds to run preparing
Took 0.796 seconds to run validating
Took 2.853 seconds to run running

New
---

Took 0.254 seconds to run building
Took 0.457 seconds to run compiling
Took 30.780 seconds to run preparing
Took 0.776 seconds to run validating
Took 2.222 seconds to run running

Change-Id: Idc9ce88865b58a2dffd2e8955f0fab7f056d92b3
2015-05-05 23:17:03 -07:00
2015-05-01 19:40:16 +00:00
2013-11-22 11:25:03 +04:00
2014-01-07 18:10:43 +00: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
2013-07-07 21:46:32 -07:00
2015-02-21 08:58:35 -08:00
2014-01-02 10:38:15 -08:00
2015-03-09 11:25:22 -07:00
2014-05-01 12:43:52 +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 three parts: - things that are absolutely required (you can't use the project without them) are put into requirements-pyN.txt (N being the Python major version number used to install the package). The requirements that are required by some optional part of this project (you can use the project without them) are put into our tox.ini 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; - 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
Description
RETIRED, further work has moved to Debian project infrastructure
Readme 4.8 MiB