View | Details | Raw Unified | Return to bug 31561
Collapse All | Expand All

(-)a/misc/background_jobs_worker.pl (-5 / +14 lines)
Lines 48-54 The different values available are: Link Here
48
=cut
48
=cut
49
49
50
use Modern::Perl;
50
use Modern::Perl;
51
use JSON qw( decode_json );
51
use JSON qw( decode_json encode_json );
52
use Try::Tiny qw( catch try );
52
use Try::Tiny qw( catch try );
53
use Pod::Usage;
53
use Pod::Usage;
54
use Getopt::Long;
54
use Getopt::Long;
Lines 73-79 try { Link Here
73
} catch {
73
} catch {
74
    warn sprintf "Cannot connect to the message broker, the jobs will be processed anyway (%s)", $_;
74
    warn sprintf "Cannot connect to the message broker, the jobs will be processed anyway (%s)", $_;
75
};
75
};
76
77
if ( $conn ) {
76
if ( $conn ) {
78
    # FIXME cf note in Koha::BackgroundJob about $namespace
77
    # FIXME cf note in Koha::BackgroundJob about $namespace
79
    my $namespace = C4::Context->config('memcached_namespace');
78
    my $namespace = C4::Context->config('memcached_namespace');
Lines 96-103 while (1) { Link Here
96
        # It could work in a first step, but then we will want to handle job that will be created from the message received
95
        # It could work in a first step, but then we will want to handle job that will be created from the message received
97
        my $job = Koha::BackgroundJobs->find($args->{job_id});
96
        my $job = Koha::BackgroundJobs->find($args->{job_id});
98
97
99
        process_job( $job, $args );
98
        if ( $job ) {
100
        $conn->ack( { frame => $frame } ); # FIXME depending on success?
99
            process_job( $job, $args );
100
            $conn->ack( { frame => $frame } ); # FIXME depending on success?
101
        } else {
102
            # FIXME if job not found in db, ack this job and requeue as new to retry later
103
            $conn->ack( { frame => $frame } );
104
            $args->{retries} = exists $args->{retries} ? $args->{retries} + 1 : 1;
105
            if ( $args->{retries} < 100 ) {
106
                 $conn->send( { destination => $frame->destination , body => encode_json($args) } );
107
            } else {
108
                warn "too many attempts, job id: " . $args->{job_id} ;
109
            }
110
        }
101
111
102
    } else {
112
    } else {
103
        my $jobs = Koha::BackgroundJobs->search({ status => 'new', queue => \@queues });
113
        my $jobs = Koha::BackgroundJobs->search({ status => 'new', queue => \@queues });
104
- 

Return to bug 31561