added public method that will cancel the metrics task. #43
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.
This is a possible solution for issue #42. It is the solution I used in my own copy of the plugin.
Background/motivation: When testing my plugin (CommunityBridge) I frequently do some testing using the reload command. This revealed an complaint from the server that CommunityBridge wasn't shutting down its tasks properly. After confirming that I had cancelled my own tasks I eventually realized that the Metrics class was starting its own task that wasn't being cancelled.
Initially, I didn't look closely at the code and assumed that the "disable" method was intended for shutting down the metrics class...eventually I realized that in addition to cancelling the task, it also turned off plugin-metrics entirely for a given server. Oops. Heads up: When I was originally researching the problem I saw (sadly, I don't recall who) other plugin authors who had assumed the same thing...so there may be released plugins out there that are unintentionally/silently turning off metrics server wide.
This is the small bit of code I added that exposes a method for me (and others, hopefully) to cancel a task and I now call metrics.cancelTask() instead of disable().