keep deferrals count in place betweeen mgr restarts

This commit is contained in:
Oliver Gorwits
2018-02-10 11:28:57 +00:00
parent 160d3f2a05
commit 3f7e3b0531
2 changed files with 21 additions and 8 deletions

View File

@@ -21,6 +21,7 @@ sub worker_begin {
debug "entering Manager ($wid) worker_begin()"; debug "entering Manager ($wid) worker_begin()";
# job queue initialisation # job queue initialisation
debug "mgr ($wid): building acl hints (please be patient...)";
jq_warm_thrusters; jq_warm_thrusters;
# requeue jobs locally # requeue jobs locally

View File

@@ -57,14 +57,26 @@ sub jq_warm_thrusters {
} }
schema('netdisco')->txn_do(sub { schema('netdisco')->txn_do(sub {
$rs->search({ backend => setting('workers')->{'BACKEND'} })->delete; $rs->search({
$rs->populate([ backend => setting('workers')->{'BACKEND'},
map {{ }, { 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'}, backend => setting('workers')->{'BACKEND'},
device => $_, device => $_,
actionset => $actionset{$_}, actionset => $actionset{$_},
}} keys %actionset }, { key => 'primary' }) for keys %actionset;
]);
}); });
} }