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()";
|
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
|
||||||
|
|||||||
@@ -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;
|
||||||
]);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user