]> mj.ucw.cz Git - bex.git/blobdiff - lib/BEX/Queue.pm
Rationalized logging
[bex.git] / lib / BEX / Queue.pm
index b8fb6f166d391a1ec1539ead112fe993fc9b144e..3fb94f358d0379c487a1d055ffeeefadc9ba1850 100644 (file)
@@ -77,7 +77,6 @@ sub enqueue($$$) {
        my ($queue, $machine, $job) = @_;
        my $qf = $queue->queue_file($machine, $job->id);
        if (-f $qf) {
-               $queue->log($machine, $job->id, 'REQUEUE');
                return 0;
        }
        my $fn = $queue->job_file($job->id);
@@ -85,7 +84,6 @@ sub enqueue($$$) {
        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: $!";
-       $queue->log($machine, $job->id, 'QUEUE');
        return 1;
 }
 
@@ -114,6 +112,9 @@ sub remove($$;$) {
                        my $dst = "$d/$jid.$suff";
                        if (-f $src) {
                                rename $src, $dst or die "Cannot rename $src to $dst: $!";
+                       } else {
+                               # Might be present from the previous incarnation of the same job
+                               unlink $dst;
                        }
                }
        } else {
@@ -164,6 +165,17 @@ sub write_job_status($$$$) {
        rename "$sf.$$", $sf or die "Cannot rename $sf.$$ to $sf: $!";
 }
 
+sub update_job_status($$$$;$) {
+       my ($queue, $machine, $jid, $stat, $msg) = @_;
+       my $s = {
+               'Time' => time,
+               'Status' => $stat,
+               'Message' => $msg,
+       };
+       $queue->write_job_status($machine, $jid, $s);
+       $queue->log($machine, $jid, $stat, $msg);
+}
+
 sub lock_name($$$) {
        my ($queue, $machine, $jid) = @_;
        my $lock = $queue->{'Name'};