remove job types from netdisco-daemon-fg
This commit is contained in:
@@ -18,12 +18,12 @@ use App::Netdisco;
|
|||||||
use Dancer qw/:moose :script/;
|
use Dancer qw/:moose :script/;
|
||||||
warning sprintf "App::Netdisco %s backend", ($App::Netdisco::VERSION || 'HEAD');
|
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';
|
use App::Netdisco::Daemon::LocalQueue ':all';
|
||||||
|
|
||||||
# needed to quench AF_INET6 symbol errors
|
# needed to quench AF_INET6 symbol errors
|
||||||
use NetAddr::IP::Lite ':lower';
|
use NetAddr::IP::Lite ':lower';
|
||||||
|
use List::Util 'sum';
|
||||||
use Role::Tiny::With;
|
use Role::Tiny::With;
|
||||||
use MCE::Signal '-setpgrp';
|
use MCE::Signal '-setpgrp';
|
||||||
use MCE;
|
use MCE;
|
||||||
@@ -46,42 +46,41 @@ sub build_tasks_list {
|
|||||||
# NB MCE does not like max_workers => 0
|
# NB MCE does not like max_workers => 0
|
||||||
my $tasks = [];
|
my $tasks = [];
|
||||||
|
|
||||||
setting('workers')->{pollers} = 2
|
|
||||||
if !defined setting('workers')->{pollers};
|
|
||||||
setting('workers')->{interactives} = 2
|
|
||||||
if !defined setting('workers')->{interactives};
|
|
||||||
|
|
||||||
push @$tasks, {
|
push @$tasks, {
|
||||||
max_workers => 1,
|
max_workers => 1,
|
||||||
user_begin => worker_factory('Manager'),
|
user_begin => worker_factory('Manager'),
|
||||||
} if setting('workers')->{pollers} or setting('workers')->{interactives};
|
} if num_workers() > 0;
|
||||||
|
|
||||||
push @$tasks, {
|
push @$tasks, {
|
||||||
max_workers => 1,
|
max_workers => 1,
|
||||||
user_begin => worker_factory('Scheduler'),
|
user_begin => worker_factory('Scheduler'),
|
||||||
} if setting('housekeeping');
|
} if setting('housekeeping');
|
||||||
|
|
||||||
push @$tasks, {
|
my @logmsg = ();
|
||||||
max_workers => setting('workers')->{pollers},
|
foreach my $key (keys %{setting('job_type_keys')}) {
|
||||||
user_begin => worker_factory('Poller'),
|
my $val = setting('job_type_keys')->{$key};
|
||||||
} if setting('workers')->{pollers};
|
|
||||||
|
|
||||||
push @$tasks, {
|
setting('workers')->{$val} = 2
|
||||||
max_workers => setting('workers')->{interactives},
|
if !defined setting('workers')->{$val};
|
||||||
user_begin => worker_factory('Interactive'),
|
|
||||||
} if setting('workers')->{interactives};
|
|
||||||
|
|
||||||
info sprintf "MCE will load: %s Manager, %s Scheduler, %s Poller, %s Interactive",
|
push @logmsg, setting('workers')->{$val} ." $key";
|
||||||
((setting('workers')->{pollers} or setting('workers')->{interactives}) ? 1 : 0),
|
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('housekeeping') ? 1 : 0),
|
||||||
(setting('workers')->{pollers} || 0),
|
(join ', ', @logmsg);
|
||||||
(setting('workers')->{interactives} || 0);
|
|
||||||
|
|
||||||
return $tasks;
|
return $tasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub num_workers {
|
sub num_workers {
|
||||||
return (setting('workers')->{pollers} + setting('workers')->{interactives});
|
return sum( 0, map { setting('workers')->{$_} }
|
||||||
|
values %{setting('job_type_keys')} );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub worker_factory {
|
sub worker_factory {
|
||||||
|
|||||||
Reference in New Issue
Block a user