TaskForest
A simple, expressive, open-source, text-file-based Job Scheduler with console, HTTP, and RESTful API interfaces.
Documentation
  1. Downloading TaskForest
  2. Installing TaskForest
  3. Configuring TaskForest
    1. Jobs & Families
    2. Calendars
    3. Automatic Retries
    4. Sending Emails
    5. Options
    6. Configuration File
  4. Running TaskForest
  5. Running the TaskForest Web Server
  6. Web Server Security
  7. Checking TaskForest Status
  8. Rerunning a Job
  9. Marking a Job
  10. Tokens
  11. Releasing all Dependencies from a Job
  12. Putting a Job on Hold
  13. Releasing a Hold Off a Job
  14. HOWTO
  15. The RESTful Web Service
  16. Frequently Asked Questions (FAQ)
  17. Bugs
  18. Change Log
  19. Author
  20. Acknowledgements
  21. Copyright

Change Log

1.37 Tue March 23 2010

Enhancements

There are two main enhancements in this release. The first is that now you can configure TaskForest to automatically retry running a job if it fails. The number of times it retries, as well as the amount of time between retries is configurable on a per-job basis.

TaskForest now also features a very powerful email system. You can configure TaskForest to email you when a job fails, when a job is retried, and when a job suceeds after failing and being retried. Each kind of email can be sent to a different email address, and these email addresses can be configured system-wide, or for each job, or for anything in the middle.

If you have developed your own run wrapper, please be advised that the interface to the run wrappers has changed. Instead of being passed parameters as command line arguments, the wrappers now look for environment variables.

1.36 Tue February 23 2010

Enhancements

1.35 Thu February 11 2010

Enhancements and Minor Bug Fixes

1.33 Mon Jun 1 2009

Enhancements.

1.26 Tue May 19 2009

Minor bug fix

1.25 Mon May 18 2009

Enhancements

1.24 Sun Apr 26 2009

Enhancements

1.23 Thu Mar 24 2009

Bug fix

1.22 Mon Mar 23 2009

Feature Addition and minor bug fix

1.21 Thu Mar 12 2009

Bug fix

1.20 Tue Mar 10 2009

Minor bug fixes and documentation changes

1.19 Sat Mar 07 2009

Minor bug fixes and documentation changes

1.18 Fri Mar 06 2009

All of the changes in this release are related to the website.

1.17 Sat Feb 21 2009

The major change in this release is the addition of an alternative run wrapper script called run_with_log. It performs the same functions as the original wrapper, and also creates a log file that captures both STDOUT and STDERR of the job being run. On the website you can now display the log file of any running or completed job, by clicking on the displayed status of the job. The RESTful web service also supports this. A couple of entries have also been added to the HOWTO section of the documentation.

1.16 Wed Feb 18 2009

Minor bug fix. An incorrect test job file was shipped in the previous version. This file relied on /bin/bash, and not /bin/sh. This caused test 017 to fail on any machine that did not have /bin/bash. The file has been fixed in this release.

1.15 Sun Feb 15 2009

The ordering of jobs displayed by the status command was changed. The status command now accepts a --date option, to view jobs that ran on a previous date. When run for the current day, the status command now also displays all jobs that ran that are not currently in any Family. This handles the case where the jobs are removed from family files intra-day, after running. These jobs are displayed using the newly-supported default_time_zone option.

This release also introduces taskforestd, a perl-only web server that implements a RESTful web service that can be used by programatic clients to access the Taskforest system. The web server also includes a web site that can be used by humans to interact with Taskforest. The web server uses Basic Authentication to authenticate the user, so if you wish to use it outside an intranet, you should use taskforestdssl, the SSL version of the program.

1.14 Thu Jan 22 2009

A new config option (and command line argument) was added. The ignore_regex option instructs the system to ignore any Family files whose names match the regular expressions specified by this option. It's primarily used to ignore .bak and ~ files left by text editors. Also fixed a bug so that invalid file names are excluded.

1.13 Mon Jun 02 2008

The behavior of recurring jobs that are scheduled in a foreign time zone was not well defined. Now, the 'start' and 'until' of recurring jobs are always based on the most specific timezone of the job.

1.12 Sun Jun 01 2008

A border-condition bug dealing with foreign timezones crossing a date boundary was fixed.

1.11 Wed May 28 2008

Minor errors in the documentation and logging were fixed. A test case that was returing false negatives was made more robust.

1.10 Mon May 26 2008

Syntax error checking was added to the Family file parser. Optional logging of STDOUT and STDERR is now possible. The mark and rerun commands can now act on just the job specified, or on all its dependents or on both - the job and its dependents. Finally, a config file can now be used in lieu of command-line options or environment variables.

New options are:

A sample config file can be found in the main directory as well as in the pod for TaskForest.

Please see the TaskForest pod for more details: perldoc TaskForest OR man TaskForest

Because of these changes, there are two new dependencies: Log::Log4perl version 1.16 or higher
Config::General version 2.38 or higher

1.09 Sun Apr 27 2008

Two new scripts were added: 'rerun' schedules A job to be rerun, and 'mark' marks a previously job as Success or Failure. A new 'chained' option was added to the definition of repeat jobs, and a '--collapsed' option was added to the status script.

1.08 Mon Apr 07 20:52:00 2008

A couple of the files required for the most recent test case was missing from the distribution. Added those files to the distribution. No code changes are present in this distribution.

1.07 Sun Apr 06 20:50:00 2008

A major bug was fixed in this release. Long-running jobs (that ran for longer than the wait time, or longer than the time between two invocations of taskforest) were not recognized as such. This caused the jobs to be marked as 'Ready' and not 'Running', causing them to be run again. All users are urged to upgrade to this release and make sure to use the current version of the 'run' wrapper.

1.06 Fri Apr 04 22:00:00 2008
    - fixed a bunch of minor bugs
      - implement --help functionality
      - added  and pod to every .pm file
      - got rid of extra call to localtime
      - removed the default_timezone command line option
      - got rid of redundant regex match for parens in job name
      - removed unused variable  from Family::readFromFile
      - renamed  to 
    - enhancements
      - refactored Family::readFromFile into smaller functions
      - use croak instead of die
      - Added more detailed info into the pid file
      - Added more test cases
      - Made the Family->display() output prettier
      - Added the StringHandle and StringHandleTier class to
        make testing easier.
1.05 Fri Mar 28 22:00:00 2008
    - added more test cases
    - fixed all known bugs
       Family::readFromFile makes a Family no longer current        
       Family::readFromFile now accepts both single and double quotes.  
       getLogDir throws an exception if the mkdir fails            
    - Added a DESIGN document
1.04 Sun Mar 23 20:56:00 2008
    - added a lot more documentation to the man page and the code
    - gave files svn:keyword properties for Date and Revision
1.03 Sat Mar 22 08:29:00 2008
- allow '-' within the job_dir, log_dir and family_dir
1.02 Sat Mar 22 07:22:00 2008
- fixed bug where options weren't being read from the command line properly
1.01 Sat Mar 22 01:05:00 2008
- added bin files to MANIFEST and fixed test
1.00 Thu Mar 20 20:39:24 2008
- original version; created by ExtUtils::ModuleMaker 0.51