keep deferrals count in place betweeen mgr restarts
This commit is contained in:
		| @@ -21,6 +21,7 @@ sub worker_begin { | ||||
|   debug "entering Manager ($wid) worker_begin()"; | ||||
|  | ||||
|   # job queue initialisation | ||||
|   debug "mgr ($wid): building acl hints (please be patient...)"; | ||||
|   jq_warm_thrusters; | ||||
|  | ||||
|   # requeue jobs locally | ||||
|   | ||||
| @@ -57,14 +57,26 @@ sub jq_warm_thrusters { | ||||
|   } | ||||
|  | ||||
|   schema('netdisco')->txn_do(sub { | ||||
|     $rs->search({ backend => setting('workers')->{'BACKEND'} })->delete; | ||||
|     $rs->populate([ | ||||
|       map {{ | ||||
|         backend => setting('workers')->{'BACKEND'}, | ||||
|         device  => $_, | ||||
|         actionset => $actionset{$_}, | ||||
|       }} keys %actionset | ||||
|     ]); | ||||
|     $rs->search({ | ||||
|       backend => setting('workers')->{'BACKEND'}, | ||||
|     }, { for => 'update' }, )->update({ actionset => [] }); | ||||
|  | ||||
|     $rs->search({ | ||||
|       backend => setting('workers')->{'BACKEND'}, | ||||
|       deferrals => { '>' => 0 }, | ||||
|     }, { for => 'update' }, )->update({ deferrals => \'deferrals - 1' }); | ||||
|  | ||||
|     $rs->search({ | ||||
|       backend => setting('workers')->{'BACKEND'}, | ||||
|       actionset => { -value => [] }, | ||||
|       deferrals => 0, | ||||
|     })->delete; | ||||
|  | ||||
|     $rs->update_or_create({ | ||||
|       backend => setting('workers')->{'BACKEND'}, | ||||
|       device  => $_, | ||||
|       actionset => $actionset{$_}, | ||||
|     }, { key => 'primary' }) for keys %actionset; | ||||
|   }); | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user