remove job types from netdisco-daemon-fg

This commit is contained in:
Oliver Gorwits
2014-04-24 21:33:01 +01:00
parent 349bddf609
commit ccdeca600c

View File

@@ -18,12 +18,12 @@ use App::Netdisco;
use Dancer qw/:moose :script/;
warning sprintf "App::Netdisco %s backend", ($App::Netdisco::VERSION || 'HEAD');
# callbacks and local job queue management
# local job queue management
use App::Netdisco::Daemon::LocalQueue ':all';
# needed to quench AF_INET6 symbol errors
use NetAddr::IP::Lite ':lower';
use List::Util 'sum';
use Role::Tiny::With;
use MCE::Signal '-setpgrp';
use MCE;
@@ -46,42 +46,41 @@ sub build_tasks_list {
# NB MCE does not like max_workers => 0
my $tasks = [];
setting('workers')->{pollers} = 2
if !defined setting('workers')->{pollers};
setting('workers')->{interactives} = 2
if !defined setting('workers')->{interactives};
push @$tasks, {
max_workers => 1,
user_begin => worker_factory('Manager'),
} if setting('workers')->{pollers} or setting('workers')->{interactives};
} if num_workers() > 0;
push @$tasks, {
max_workers => 1,
user_begin => worker_factory('Scheduler'),
} if setting('housekeeping');
push @$tasks, {
max_workers => setting('workers')->{pollers},
user_begin => worker_factory('Poller'),
} if setting('workers')->{pollers};
my @logmsg = ();
foreach my $key (keys %{setting('job_type_keys')}) {
my $val = setting('job_type_keys')->{$key};
push @$tasks, {
max_workers => setting('workers')->{interactives},
user_begin => worker_factory('Interactive'),
} if setting('workers')->{interactives};
setting('workers')->{$val} = 2
if !defined setting('workers')->{$val};
info sprintf "MCE will load: %s Manager, %s Scheduler, %s Poller, %s Interactive",
((setting('workers')->{pollers} or setting('workers')->{interactives}) ? 1 : 0),
push @logmsg, setting('workers')->{$val} ." $key";
push @$tasks, {
max_workers => setting('workers')->{$val},
user_begin => worker_factory($key),
} if setting('workers')->{$val};
}
info sprintf "MCE will load: %s Manager, %s Scheduler, %s",
(num_workers() ? 1 : 0),
(setting('housekeeping') ? 1 : 0),
(setting('workers')->{pollers} || 0),
(setting('workers')->{interactives} || 0);
(join ', ', @logmsg);
return $tasks;
}
sub num_workers {
return (setting('workers')->{pollers} + setting('workers')->{interactives});
return sum( 0, map { setting('workers')->{$_} }
values %{setting('job_type_keys')} );
}
sub worker_factory {