Bric::Util::Job::Dist - Manages Bricolage distribution jobs.
use Bric::Util::Job::Dist;
my $id = 1;
my $format = "%D %T";
# Constructors.
my $job = Bric::Util::Job::Dist->new($init);
$job = Bric::Util::Job::Dist->lookup({ id => $id });
my @jobs = Bric::Util::Job::Dist->list($params);
# Class Methods.
my @job_ids = Bric::Util::Job::Dist->list_ids($params);
# Instance Methods
my $id = $job->get_id;
my $type = $job->get_type;
$job = $job->set_type($type);
my $sched_time = $job->get_sched_time($format);
$job = $job->set_sched_time($sched_time);
my $comp_time = $job->get_comp_time($format);
my @resources = $job->get_resources;
my @resource_ids = $job->get_resource_ids;
$job = $job->set_resource_ids(@resource_ids);
my @server_types = $job->get_server_types;
my @server_type_ids = $job->get_server_type_ids;
$job = $job->set_server_type_ids(@server_type_ids);
# Save the job.
$job = $job->save;
# Cancel the job.
$job = $job->cancel;
# Execute the job.
$job = $job->execute_me;
This class manages distribution jobs. A job is a list of things to be transformed by actions and moved out, all at a scheduled time. The idea is that Bricolage will schedule a job and then it will be executed at its scheduled times. There are two types of jobs, "Deliver" and "Expire".
Inherited from Bric::Util::Job
Inherited from Bric::Util::Job
Carries out the actions that constitute the job. This method is called by execute_me() in Bric::Dist::Job and should therefore never be called directly.
For each of the server types associated with this job, the list of actions will be performed on each file, hopefully culminating in the distribution of the resources to the servers associated with the server type. At the end of the process, a completion time will be saved to the database. Attempting to execute a job before its scheduled time will throw an exception.
Throws: Quite a few exceptions can be thrown here. Check the do_it() methods on all Bric::Dist::Action subclasses, as well as the put_res() methods of the mover classes (e.g., Bric::Util::Trans::FS). Here are the exceptions thrown from withing this method itself.
Cannot execute job before its scheduled time.
Cannot execute job that has already been executed.
Can't get a lock on job.
Unable to connect to database.
Unable to prepare SQL statement.
Unable to execute SQL statement.
Incorrect number of args to Bric::_set().
Bric::set() - Problems setting fields.
Side Effects: NONE.
Notes: NONE.
NONE.
David Wheeler <david@kineticode.com>
Mark Jaroski <jaroskim@who.int>