X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/f866d16b4e837443b71ffaf3b78c1127ac57717e..ad9b15c2da87c6ee98f0990b49c8dff0f09cf581:/SL/DB/BackgroundJob.pm diff --git a/SL/DB/BackgroundJob.pm b/SL/DB/BackgroundJob.pm index 9f2f7cb05..e8ae55bac 100644 --- a/SL/DB/BackgroundJob.pm +++ b/SL/DB/BackgroundJob.pm @@ -8,10 +8,10 @@ use English qw(-no_match_vars); use SL::DB::MetaSetup::BackgroundJob; use SL::DB::Manager::BackgroundJob; -use SL::DB::BackgroundJobHistory; - use SL::System::Process; +__PACKAGE__->meta->initialize; + __PACKAGE__->before_save('_before_save_set_next_run_at'); sub _before_save_set_next_run_at { @@ -36,6 +36,8 @@ sub run { my $run_at = DateTime->now_local; my $history; + require SL::DB::BackgroundJobHistory; + my $ok = eval { eval "require $package" or die $@; my $result = $package->new->run($self); @@ -77,6 +79,16 @@ sub data_as_hash { return {}; } +sub set_data { + my ($self, %data) = @_; + + my $data = YAML::Load($self->data); + $data->{$_} = $data{$_} for keys %data; + $self->data(YAML::Dump($data)); + + $self; +} + sub validate { my ($self) = @_;