remove job types from netdisco-daemon-fg
This commit is contained in:
		| @@ -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 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user