use Modern::Perl;
-use Koha::DateUtils qw( dt_from_string );
use Koha::Holds;
use Koha::Patrons;
-use Koha::Holds;
use base 'Koha::BackgroundJob';
return;
}
- my $job_progress = 0;
- $self->started_on(dt_from_string)->progress($job_progress)
- ->status('started')->store;
+ $self->start;
my @hold_ids = @{ $args->{hold_ids} };
};
$report->{total_success}++;
}
- $self->progress( ++$job_progress )->store;
+ $self->step;
}
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
-
- $self->ended_on(dt_from_string)->data($json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
+ $self->finish( $data );
}
=head3 enqueue
use C4::AuthoritiesMarc;
-use Koha::DateUtils qw( dt_from_string );
use Koha::SearchEngine;
use Koha::SearchEngine::Indexer;
# FIXME If the job has already been started, but started again (worker has been restart for instance)
# Then we will start from scratch and so double delete the same records
- my $job_progress = 0;
- $self->started_on(dt_from_string)
- ->progress($job_progress)
- ->status('started')
- ->store;
+ $self->start;
my $mmtid = $args->{mmtid};
my @record_ids = @{ $args->{record_ids} };
$schema->storage->txn_commit;
}
- $self->progress( ++$job_progress )->store;
+ $self->step;
}
my @deleted_authids =
$indexer->index_records( \@deleted_authids, "recordDelete", "authorityserver" );
}
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
- $self->ended_on(dt_from_string)
- ->data($json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ $self->finish( $data );
}
sub enqueue {
use C4::Biblio;
use Koha::BackgroundJob::BatchUpdateBiblioHoldsQueue;
-use Koha::DateUtils qw( dt_from_string );
use Koha::SearchEngine;
use Koha::SearchEngine::Indexer;
# FIXME If the job has already been started, but started again (worker has been restart for instance)
# Then we will start from scratch and so double delete the same records
- my $job_progress = 0;
- $self->started_on(dt_from_string)
- ->progress($job_progress)
- ->status('started')
- ->store;
+ $self->start;
my $mmtid = $args->{mmtid};
my @record_ids = @{ $args->{record_ids} };
biblionumber => $biblionumber,
};
$schema->storage->txn_rollback;
- $self->progress( ++$job_progress )->store;
+
+ $self->step;
next;
}
error => "$@",
};
$schema->storage->txn_rollback;
- $self->progress( ++$job_progress )->store;
+
+ $self->step;
next RECORD_IDS;
}
}
error => @{$deleted->messages}[0]->message,
};
$schema->storage->txn_rollback;
- $self->progress( ++$job_progress )->store;
+
+ $self->step;
next RECORD_IDS;
}
}
error => ($@ ? $@ : $error),
};
$schema->storage->txn_rollback;
- $self->progress( ++$job_progress )->store;
+
+ $self->step;
next;
}
};
$report->{total_success}++;
$schema->storage->txn_commit;
- $self->progress( ++$job_progress )->store;
+
+ $self->step;
}
my @deleted_biblionumbers =
) if C4::Context->preference('RealTimeHoldsQueue');
}
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
- $self->ended_on(dt_from_string)
- ->data($json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ $self->finish( $data );
}
=head3 enqueue
use List::MoreUtils qw( uniq );
use Try::Tiny;
-use Koha::DateUtils qw( dt_from_string );
use Koha::Items;
use base 'Koha::BackgroundJob';
# FIXME If the job has already been started, but started again (worker has been restart for instance)
# Then we will start from scratch and so double delete the same records
- my $job_progress = 0;
- $self->started_on(dt_from_string)->progress($job_progress)
- ->status('started')->store;
+ $self->start;
my @record_ids = @{ $args->{record_ids} };
my $delete_biblios = $args->{delete_biblios};
push @biblionumbers, $item->biblionumber;
$report->{total_success}++;
- $self->progress( ++$job_progress )->store;
+ $self->step;
}
# If there are no items left, delete the biblio
$report->{not_deleted_itemnumbers} = \@not_deleted_itemnumbers;
$report->{deleted_biblionumbers} = \@deleted_biblionumbers;
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
- $self->ended_on(dt_from_string)->data( $json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ $self->finish( $data );
}
=head3 enqueue
use C4::MarcModificationTemplates qw( ModifyRecordWithTemplate );
use C4::AuthoritiesMarc qw( ModAuthority );
use Koha::BackgroundJobs;
-use Koha::DateUtils qw( dt_from_string );
use Koha::MetadataRecord::Authority;
use Koha::SearchEngine;
use Koha::SearchEngine::Indexer;
return;
}
- my $job_progress = 0;
- $self->started_on(dt_from_string)
- ->progress($job_progress)
- ->status('started')
- ->store;
+ $self->start;
my $mmtid = $args->{mmtid};
my @record_ids = @{ $args->{record_ids} };
};
$report->{total_success}++;
}
- $self->progress( ++$job_progress )->store;
+ $self->step;
}
my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::AUTHORITIES_INDEX });
$indexer->index_records( \@record_ids, "specialUpdate", "authorityserver" );
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
- $self->ended_on(dt_from_string)
- ->data($json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ $self->finish( $data );
}
use Modern::Perl;
use Koha::Biblios;
-use Koha::DateUtils qw( dt_from_string );
use Koha::Virtualshelves;
use Koha::SearchEngine;
use Koha::SearchEngine::Indexer;
# FIXME If the job has already been started, but started again (worker has been restart for instance)
# Then we will start from scratch and so double process the same records
- my $job_progress = 0;
- $self->started_on(dt_from_string)
- ->progress($job_progress)
- ->status('started')
- ->store;
+ $self->start;
my $mmtid = $args->{mmtid};
my @record_ids = @{ $args->{record_ids} };
};
$report->{total_success}++;
}
- $self->progress( ++$job_progress )->store;
+
+ $self->step;
}
my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX });
$indexer->index_records( \@record_ids, "specialUpdate", "biblioserver" );
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
- $self->ended_on(dt_from_string)
- ->data($json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ $self->finish( $data );
}
=head3 enqueue
my $schema = Koha::Database->new->schema;
- $self->set(
- {
- started_on => \'NOW()',
- progress => 0,
- status => 'started',
- }
- )->store;
+ $self->start;
my @biblio_ids = @{ $args->{biblio_ids} };
$schema->storage->txn_rollback;
};
- $self->progress( $self->progress + 1 )->store;
+ $self->step;
}
- my $json = $self->json;
- my $job_data = $json->decode($self->data);
- $job_data->{messages} = \@messages;
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{messages} = \@messages;
+ $data->{report} = $report;
- $self->set(
- {
- ended_on => \'NOW()',
- data => $json->encode($job_data),
- status => 'finished',
- }
- )->store;
+ $self->finish( $data );
}
=head3 enqueue
# FIXME If the job has already been started, but started again (worker has been restart for instance)
# Then we will start from scratch and so double process the same records
- my $job_progress = 0;
- $self->started_on(dt_from_string)->progress($job_progress)
- ->status('started')->store;
+ $self->start;
my @record_ids = @{ $args->{record_ids} };
my $regex_mod = $args->{regex_mod};
};
try {
- my ($results) =
- Koha::Items->search( { itemnumber => \@record_ids } )
- ->batch_update(
- {
- regex_mod => $regex_mod,
- new_values => $new_values,
- exclude_from_local_holds_priority =>
- $exclude_from_local_holds_priority,
- mark_items_returned => $mark_items_returned,
- callback => sub {
- my ($progress) = @_;
- $self->progress($progress)->store;
- },
+ my ($results) = Koha::Items->search( { itemnumber => \@record_ids } )->batch_update(
+ { regex_mod => $regex_mod,
+ new_values => $new_values,
+ exclude_from_local_holds_priority => $exclude_from_local_holds_priority,
+ mark_items_returned => $mark_items_returned,
+ callback => sub { $self->step; },
}
- );
+ );
$report->{modified_itemnumbers} = $results->{modified_itemnumbers};
$report->{modified_fields} = $results->{modified_fields};
}
if ( $_ =~ /Rollback failed/ ); # Rollback failed
};
- my $json = $self->json;
- $self->discard_changes;
- my $job_data = $json->decode($self->data);
- $job_data->{report} = $report;
+ my $data = $self->decoded_data;
+ $data->{report} = $report;
- $self->ended_on(dt_from_string)->data($json->encode($job_data));
- $self->status('finished') if $self->status ne 'cancelled';
- $self->store;
+ $self->finish( $data );
}
=head3 enqueue