Revision 58c87e38
Von Moritz Bunkus vor fast 10 Jahren hinzugefügt
scripts/task_server.pl | ||
---|---|---|
$::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 @_ };
|
||
}
|
||
... | ... | |
die "Missing key 'client' in section [task_server] in config file" unless $lx_office_conf{task_server}->{client};
|
||
|
||
drop_privileges();
|
||
lxinit();
|
||
initialize_kivitendo();
|
||
|
||
return ();
|
||
}
|
||
... | ... | |
sub gd_run {
|
||
while (1) {
|
||
my $ok = eval {
|
||
initialize_kivitendo();
|
||
|
||
debug("Retrieving jobs");
|
||
|
||
my $jobs = SL::DB::Manager::BackgroundJob->get_all_need_to_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;
|
||
|
Auch abrufbar als: Unified diff
Task-Server: Initialisierung vereinheitlicht