NAME

Schedule::Depend::Execute

Execution front end for schedules. Main use is tying together the various modules used with S::D for running a set of jobs. Exports "runsched" to pass in the schedule and optional sequence of schedule items to debug for #! code.

SYNOPSIS

# run the default schedule in
# $Schedule::Depend::Execute::defalts{sched}.
#
# this is normal for production jobs.
#
# a local "Defaults" module is used to 
# set up %Schedule::Depend::Execute::defaults.

use Schedule::Depend::Execute;

use Defaults;

runsched;

# use a specific schedule -- mainly useful
# for debugging schedule components or 
# running portions of a larger schedule as
# utility functions.

my $schedule = 
q{
	dothis : dothat
	another : dothis
};

runsched $schedule;

# extra arguments are run without forking in the
# order given if "--debug" is passed on the command
# line.

runsched $schedule, qw( dothat dothis another );

# run only a subset of the jobs.

runsched $schedule, qw( dothat dothis );

NOTES

The first two examples are a reasonable production job. If "--debug" is passed in on the command line then the last schedule is prepared and validated, after which the sequence of jobs is run single-stream, without forking in the order given.

During development the schedule sequence can be debugged by adding new items to the execution array and running the #! code with --restart and --debug to skip previously completed jobs and run the new ones. A single step in the schedule can be debugged by passing it as the single item in the list:

runsched $schedule, 'dothis';

will run only a single item in the schedule if "--debug" is on the command line.

Within Execute.pm, the various modules that will be used for a given job or set of schedules is added via "use base":

use base
qw(
	Foo::Module

	Bar::AnotherModule

	Schedule::Depend
);

and the que object is prepared within the Execute package to allow the methods to be called from a schedule.

Separate projects will normally require their own Project::Execute to tie the pieces of that project together.

AUTHOR

Steven Lembark, Workhorse Computing <lembark@wrkhors.com>

COPYRIGHT

This code is made available under the same terms as Perl-5.6.1 or any later verison of Perl.