Allow user to adjust behaviour when a filter misbehaves
When a filter misbehaves (in 0.2.0: returns a response when none is allowed) it is removed from the filters. This will result in filters not operating with very little warning to the user (a single log line). In the event that all filters are stopped, the runner continues processing messages without performing any actions.
As a usability improvement:
- Responses to filter errors could be handled by a
Runner
method which users can override in a subclass to implement their desired behaviour, e.g.:- Stop filter and email admin
- Ignore unless the rate of errors exceeds a tracked threshold
- Default to raising an exception as that is the simple solution with the most visibility