Open alexellis opened 3 years ago
Allow cancellation of topic map go routine
Once the topic map is being built in its own go routine, there should be some way to cancel / pause that work.
Why? Perhaps it needs to back-off for some reason, or the broker isn't available. Perhaps it should pause and restart at a later time.
Once started, there is no way to stop the topic map from being rebuilt.
Introduce a Context or cancellation channel to the SDK.
The map is rebuilt in this go routine using a timer:
https://github.com/openfaas/connector-sdk/blob/master/types/controller.go#L141
Then each result is published to the subscribers via this Go routine:
https://github.com/openfaas/connector-sdk/blob/master/types/controller.go#L102
It's a best practice for Go APIs to provide cancellation.
Users have requested this in the past.
Allow cancellation of topic map go routine
Expected Behaviour
Once the topic map is being built in its own go routine, there should be some way to cancel / pause that work.
Why? Perhaps it needs to back-off for some reason, or the broker isn't available. Perhaps it should pause and restart at a later time.
Current Behaviour
Once started, there is no way to stop the topic map from being rebuilt.
Possible Solution
Introduce a Context or cancellation channel to the SDK.
The map is rebuilt in this go routine using a timer:
https://github.com/openfaas/connector-sdk/blob/master/types/controller.go#L141
Then each result is published to the subscribers via this Go routine:
https://github.com/openfaas/connector-sdk/blob/master/types/controller.go#L102
Steps to Reproduce (for bugs)
Context
It's a best practice for Go APIs to provide cancellation.
Users have requested this in the past.