-
Notifications
You must be signed in to change notification settings - Fork 25
Description
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)
- Setup the controller
- Observe that it's building a map from the gateway
- Call cancel with the new API
- See that it stops building the map
Context
It's a best practice for Go APIs to provide cancellation.
Users have requested this in the past.