robotastic / trunk-recorder

Records calls from a Trunked Radio System (P25 & SmartNet)
GNU General Public License v3.0
827 stars 191 forks source link

Plugin smart retry #937

Closed taclane closed 2 months ago

taclane commented 3 months ago

When a plugin returns a failure for a call_end API function, trunk-recorder puts the call into a retry queue to attempt delivery two more times before abandoning the call and cleaning up. However, this process does not note which plugins report a failure, and all upload plugins will be retried on each attempt until all plugins are successful.

Problems are often seen when a config uses multiple plugins (OpenMHz, broadcastify, rdio-scanner, mqtt, etc...). Should any one of those endpoints go down (or have a problem with their SSL certs), all the other plugins will upload duplicate calls on each re-attempt.

This plugin records which plugins report a call_end failure, and on retry only attempts those to avoid sending duplicates to other services.

robotastic commented 2 months ago

This is a great idea!