Name

Bric::Util::Job::Dist - Manages Bricolage distribution jobs.

Synopsis

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;

Description

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".

Constructors

my (@jobs || $jobs_aref) = Bric::Util::Job::Dist->list($params)

Inherited from Bric::Util::Job

my (@job_ids || $job_ids_aref) = Bric::Util::Job->list_ids($params)

Inherited from Bric::Util::Job

Private Instance Methods

$self = $job->_do_it

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.

Side Effects: NONE.

Notes: NONE.

Notes

NONE.

Author

David Wheeler <david@kineticode.com>

Mark Jaroski <jaroskim@who.int>

See Also

Bric, Bric::Util::Job