# Put the job to the queue
print "New job ", $job->id, "\n";
+$queue->save_job($job);
for my $m (@machines) {
if ($queue->enqueue($m, $job)) {
$queue->update_job_status($m, $job->id, 'NEW');
return $queue->{'Path'} . '/jobs/' . $jid. '.job';
}
+sub save_job($$) {
+ my ($queue, $job) = @_;
+ # If the job already exists, it is shamelessly rewritten by new contents
+ $job->save($queue->job_file($job->id));
+}
+
sub enqueue($$$) {
my ($queue, $machine, $job) = @_;
+ # The job must be already saved to the current queue
my $qf = $queue->queue_file($machine, $job->id);
if (-f $qf) {
return 0;
}
- my $fn = $queue->job_file($job->id);
- -f $fn or $job->save($fn);
my $dir = $queue->host_dir($machine);
-d $dir or mkdir $dir or die "Cannot create directory $dir: $!";
symlink '../../jobs/' . $job->id . '.job', $qf or die "Cannot create $qf: $!";