1 package SL::BackgroundJob::RemoveInvalidFileEntries;
6 use parent qw(SL::BackgroundJob::Base);
10 use constant WAITING_FOR_EXECUTION => 0;
11 use constant SCAN_START => 1;
12 use constant DONE => 2;
17 # "Ich bin ein Fehler",
23 my $job_obj = $self->{job_obj};
24 $job_obj->set_data(status => SCAN_START())->save;
26 my @file_entries = @{ SL::DB::Manager::File->get_all() };
28 my @files = map { SL::File::Object->new(db_file => $_, id => $_->id, loaded => 1) } @file_entries;
30 my $data = $job_obj->data_as_hash;
31 foreach my $file (@files) {
32 unless (eval {$file->get_file()}) {
34 push(@{$data->{file_errors}}, $@);
35 $job_obj->update_attributes(data_as_hash => $data);
36 $file->loaded_db_file->delete();
42 my ($self, $job_obj) = @_;
43 $self->{job_obj} = $job_obj;
45 $self->scan_file_entry();
47 $job_obj->set_data(status => DONE())->save;