From 58c87e38fbfeec4e1453fd704754419a9a8d2688 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Wed, 3 Jun 2015 10:59:39 +0200 Subject: [PATCH] Task-Server: Initialisierung vereinheitlicht --- scripts/task_server.pl | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/scripts/task_server.pl b/scripts/task_server.pl index ff21183da..d515e33c0 100755 --- a/scripts/task_server.pl +++ b/scripts/task_server.pl @@ -51,42 +51,33 @@ sub debug { $::lxdebug->message(0, @_); } -sub lxinit { +sub initialize_kivitendo { + chdir $exe_dir; + my $login = $lx_office_conf{task_server}->{login}; my $client = $lx_office_conf{task_server}->{client}; package main; + Form::disconnect_standard_dbh; $::lxdebug = LXDebug->new; $::locale = Locale->new($::lx_office_conf{system}->{language}); $::form = Form->new; $::auth = SL::Auth->new; die "No client configured or no client found with the name/ID '$client'" unless $::auth->set_client($client); $::instance_conf = SL::InstanceConfiguration->new; - $::request = { cgi => CGI->new({}) }; - - die 'cannot reach auth db' unless $::auth->session_tables_present; - - $::auth->restore_session; - - require "bin/mozilla/common.pl"; - - die "cannot find user $login" unless %::myconfig = $::auth->read_user(login => $login); - die "cannot find locale for user $login" unless $::locale = Locale->new('de'); -} - -sub per_job_initialization { - $::locale = Locale->new($::myconfig{countrycode} || $::lx_office_conf{system}->{language}); - $::form = Form->new; - $::instance_conf = SL::InstanceConfiguration->new; $::request = SL::Request->new( cgi => CGI->new({}), layout => SL::Layout::None->new, ); + die 'cannot reach auth db' unless $::auth->session_tables_present; + $::auth->restore_session; + $::auth->create_or_refresh_session; - $::instance_conf->init; + die "cannot find user $login" unless %::myconfig = $::auth->read_user(login => $login); + die "cannot find locale for user $login" unless $::locale = Locale->new($::myconfig{countrycode} || $::lx_office_conf{system}->{language}); $::form->{__ERROR_HANDLER} = sub { die @_ }; } @@ -173,7 +164,7 @@ sub gd_preconfig { die "Missing key 'client' in section [task_server] in config file" unless $lx_office_conf{task_server}->{client}; drop_privileges(); - lxinit(); + initialize_kivitendo(); return (); } @@ -181,6 +172,8 @@ sub gd_preconfig { sub gd_run { while (1) { my $ok = eval { + initialize_kivitendo(); + debug("Retrieving jobs"); my $jobs = SL::DB::Manager::BackgroundJob->get_all_need_to_run; @@ -190,9 +183,7 @@ sub gd_run { foreach my $job (@{ $jobs }) { # Provide fresh global variables in case legacy code modifies # them somehow. - per_job_initialization(); - - chdir $exe_dir; + initialize_kivitendo(); my $history = $job->run; -- 2.20.1