workers instead of daemon_* config

This commit is contained in:
Oliver Gorwits
2013-06-08 19:54:10 +01:00
parent 4f6b470429
commit 9957548022
7 changed files with 37 additions and 50 deletions

View File

@@ -44,15 +44,15 @@ sub build_tasks_list {
# NB MCE does not like max_workers => 0
my $tasks = [];
set(daemon_pollers => 2)
if !defined setting('daemon_pollers');
set(daemon_interactives => 2)
if !defined setting('daemon_interactives');
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('daemon_pollers') or setting('daemon_interactives');
} if setting('workers')->{pollers} or setting('workers')->{interactives};
push @$tasks, {
max_workers => 1,
@@ -60,27 +60,27 @@ sub build_tasks_list {
} if setting('housekeeping');
push @$tasks, {
max_workers => setting('daemon_pollers'),
max_workers => setting('workers')->{pollers},
user_begin => worker_factory('Poller'),
} if setting('daemon_pollers');
} if setting('workers')->{pollers};
push @$tasks, {
max_workers => setting('daemon_interactives'),
max_workers => setting('workers')->{interactives},
user_begin => worker_factory('Interactive'),
} if setting('daemon_interactives');
} if setting('workers')->{interactives};
info sprintf "MCE will load %s tasks: %s Manager, %s Scheduler, %s Poller, %s Interactive",
(scalar @$tasks),
((setting('daemon_pollers') or setting('daemon_interactives')) ? 1 : 0),
((setting('workers')-{pollers} or setting('workers')->{interactives}) ? 1 : 0),
(setting('housekeeping') ? 1 : 0),
(setting('daemon_pollers') || 0),
(setting('daemon_interactives') || 0);
(setting('workers')->{pollers} || 0),
(setting('workers')->{interactives} || 0);
return $tasks;
}
sub num_workers {
return (setting('daemon_pollers') + setting('daemon_interactives'));
return (setting('workers')->{pollers} + setting('workers')->{interactives});
}
sub worker_factory {

View File

@@ -43,8 +43,8 @@ sub capacity_for {
};
my $setting_map = {
Poller => 'daemon_pollers',
Interactive => 'daemon_interactives',
Poller => 'pollers',
Interactive => 'interactives',
};
my $role = $role_map->{$action};
@@ -52,7 +52,7 @@ sub capacity_for {
my $current = $queue->search({role => $role})->count;
return ($current < setting($setting));
return ($current < setting('workers')->{$setting}));
}
sub take_jobs {

View File

@@ -49,7 +49,7 @@ sub worker_body {
}
debug "int ($wid): sleeping now...";
sleep( setting('daemon_sleep_time') || 5 );
sleep( setting('workers')->{sleep_time} || 5 );
}
}

View File

@@ -84,7 +84,7 @@ sub worker_body {
# TODO also check for stale jobs in Netdisco DB
debug "mgr ($wid): sleeping now...";
sleep( setting('daemon_sleep_time') || 5 );
sleep( setting('workers')->{sleep_time} || 5 );
}
}

View File

@@ -51,7 +51,7 @@ sub worker_body {
}
debug "poll ($wid): sleeping now...";
sleep( setting('daemon_sleep_time') || 5 );
sleep( setting('workers')->{sleep_time} || 5 );
}
}

View File

@@ -64,10 +64,11 @@ snmptimeout: 1000000
#
# mibhome: /usr/share/netdisco/mibs
mibdirs:
- cisco
- rfc
- net-snmp
# If unset, loads all MIBs in the mibhome directory.
# mibdirs:
# - cisco
# - rfc
# - net-snmp
community: ['public']
community_rw: ['private']
@@ -96,25 +97,17 @@ ignore_interfaces:
- '(E|T)\\d \\d\\/\\d\\/\\d'
- 'Vlan1'
# sleep time between polls of the database job queue
daemon_sleep_time: 5
# how many daemon processes for this node
daemon_interactives: 2
daemon_pollers: 2
workers:
# how many daemon processes for this node
interactives: 2
pollers: 2
# sleep time between polls of the database job queue
sleep_time: 5
# what housekeeping tasks should this node *schedule*
# (it only does them if daemon_pollers is non-zero)
# (it only does them if workers->pollers is non-zero)
#housekeeping:
# discovernew:
# device: '192.0.2.0'
# when:
# wday: 'wed'
# hour: 14
# backup:
# when:
# hour: 1
# refresh:
# discoverall:
# when: '0 9 * * *'
# arpwalk:
# when:
@@ -122,9 +115,3 @@ daemon_pollers: 2
# macwalk:
# when:
# hour: '*/2'
# nbtwalk:
# when:
# hour: '8,13,21'
# saveconfigs:
# param: 61
# when: '0 * * * *'

View File

@@ -37,11 +37,11 @@ plugins:
# local settings for Netdisco poller and port changes
mibdirs:
- cisco
- rfc
- net-snmp
# If unset, loads all MIBs
# mibdirs:
# - cisco
# - rfc
# - net-snmp
community: ['public']
community_rw: ['private']