ActiveWorker
A framework for defining and tracking long-running jobs across a cluster.
Status
Core Features
- Backed by MongoDB/Mongoid for long-term storage of Job Configurations and Events
- Templating to group similar jobs by Scenario
- Hierarchy of Configurations so jobs can launch/own other jobs
- "Root-Object" pattern so all artifacts created by the Job can be organized under a single object for fast/convenient look-ups
- Expansion allows a single configuration to launch multiple instances of the job
- Events keep track of Start/Finish/Termination/Failure of Jobs. FailureEvents record stack-traces.
- Modes allow multiple permutations of fields without having to memorize particular options.
ActiveWorker uses Resque as the underlying job launching platform. Support for Beanstalk has been deprecated.
Purpose
ActiveWorker is designed to support load-testing and performance testing but can be used for any purpose. The underlying expansion logic supports forking(default) and threading.
Install
gem install active_worker
Getting Started
Take a look at examples and bin/example_runner for now.
Testing
Requires MongoDB and Redis to run tests bundle exec rake test