X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/3be85e174a63158503c333e7f0682abfc969bf8b..b6fd15a8dc44f9b09d5a2bce766cda14b87c6e13:/SL/DB/BackgroundJob.pm diff --git a/SL/DB/BackgroundJob.pm b/SL/DB/BackgroundJob.pm index 18f8e428f..9f2f7cb05 100644 --- a/SL/DB/BackgroundJob.pm +++ b/SL/DB/BackgroundJob.pm @@ -10,9 +10,17 @@ use SL::DB::Manager::BackgroundJob; use SL::DB::BackgroundJobHistory; -use SL::BackgroundJob::Test; use SL::System::Process; +__PACKAGE__->before_save('_before_save_set_next_run_at'); + +sub _before_save_set_next_run_at { + my ($self) = @_; + + $self->update_next_run_at if !$self->next_run_at; + return 1; +} + sub update_next_run_at { my $self = shift; @@ -29,6 +37,7 @@ sub run { my $history; my $ok = eval { + eval "require $package" or die $@; my $result = $package->new->run($self); $history = SL::DB::BackgroundJobHistory @@ -81,7 +90,7 @@ sub validate { } eval { - DateTime::Event::Cron->new_from_cron($self->cron_spec)->next(DateTime->now_local); + DateTime::Event::Cron->new_from_cron($self->cron_spec || '* * * * *')->next(DateTime->now_local); 1; } or push @errors, $::locale->text('The execution schedule is invalid.');