Configurable cull arbitration #90
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's a proposal at making configurable the decision about whether or not to cull a server. The idea is to provide a hook that can be configured that takes 3 arguments. The first 2 are the usual inputs to decide whether or not to cull --- the idle time of a server and the idle time limit. The third argument is the server dict. Default cull arbitration is the familiar:
But now the user can do this in a
traitlets
config file since #83 is merged:This exempts servers with a profile name of "unlimited" from ever being culled. For this to work the cull arbitration function needs to "know" about the kinds of stuff it can check in the server dict. Some other changes and things to note:
Callable
traitlet; if thecull_arbiter_hook
is left as None then the default behavior is usedreturn inactive.total_seconds()...
line. But the user still has to know they need to either include that check or somehow tell the culler to do it in addition to (or instead of) whatever logic they've got.Questions:
Addresses #9, #25