only start Manager if there are pollers or interactives
This commit is contained in:
@@ -41,23 +41,23 @@ my $mce = MCE->new(
|
|||||||
)->run();
|
)->run();
|
||||||
|
|
||||||
sub build_tasks_list {
|
sub build_tasks_list {
|
||||||
my $tasks = [{
|
# NB MCE does not like max_workers => 0
|
||||||
max_workers => 1,
|
my $tasks = [];
|
||||||
user_begin => worker_factory('Manager'),
|
|
||||||
}];
|
|
||||||
|
|
||||||
my $has_scheduler = (setting('housekeeping') ? 1 : 0);
|
|
||||||
push @$tasks, {
|
|
||||||
max_workers => 1,
|
|
||||||
user_begin => worker_factory('Scheduler'),
|
|
||||||
} if $has_scheduler;
|
|
||||||
|
|
||||||
set(daemon_pollers => 2)
|
set(daemon_pollers => 2)
|
||||||
if !defined setting('daemon_pollers');
|
if !defined setting('daemon_pollers');
|
||||||
set(daemon_interactives => 2)
|
set(daemon_interactives => 2)
|
||||||
if !defined setting('daemon_interactives');
|
if !defined setting('daemon_interactives');
|
||||||
|
|
||||||
# XXX MCE does not like max_workers => 0
|
push @$tasks, {
|
||||||
|
max_workers => 1,
|
||||||
|
user_begin => worker_factory('Manager'),
|
||||||
|
} if setting('daemon_pollers') or setting('daemon_interactives');
|
||||||
|
|
||||||
|
push @$tasks, {
|
||||||
|
max_workers => 1,
|
||||||
|
user_begin => worker_factory('Scheduler'),
|
||||||
|
} if setting('housekeeping');
|
||||||
|
|
||||||
push @$tasks, {
|
push @$tasks, {
|
||||||
max_workers => setting('daemon_pollers'),
|
max_workers => setting('daemon_pollers'),
|
||||||
@@ -69,10 +69,13 @@ sub build_tasks_list {
|
|||||||
user_begin => worker_factory('Interactive'),
|
user_begin => worker_factory('Interactive'),
|
||||||
} if setting('daemon_interactives');
|
} if setting('daemon_interactives');
|
||||||
|
|
||||||
info sprintf "MCE will load %s tasks: 1 Manager, %s Scheduler, %s Poller, %s Interactive",
|
info sprintf "MCE will load %s tasks: %s Manager, %s Scheduler, %s Poller, %s Interactive",
|
||||||
(scalar @$tasks), $has_scheduler,
|
(scalar @$tasks),
|
||||||
|
((setting('daemon_pollers') or setting('daemon_interactives')) ? 1 : 0),
|
||||||
|
(setting('housekeeping') ? 1 : 0),
|
||||||
(setting('daemon_pollers') || 0),
|
(setting('daemon_pollers') || 0),
|
||||||
(setting('daemon_interactives') || 0);
|
(setting('daemon_interactives') || 0);
|
||||||
|
|
||||||
return $tasks;
|
return $tasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user