2024-09-12 14:57:53 +00:00
|
|
|
package outgoingeventqueue
|
2024-09-13 13:02:32 +00:00
|
|
|
|
|
|
|
// TODO: Implement me
|
|
|
|
|
|
|
|
/*
|
|
|
|
Queue for controlled distribution of outgoing events, such as note creations, deletions or updates
|
|
|
|
Also has to manage the case where an instance can't be reached or where Linstrom has to shut down
|
|
|
|
In case of a shutdown, it has to store all remaining tasks in the db to try again later after the next boot
|
|
|
|
Should preferably also be able to tell when a server is just gone and stop bothering about it
|
2024-09-13 13:22:11 +00:00
|
|
|
|
|
|
|
|
|
|
|
Implementation idea: New job gets send to queue (via function call). Queue then launches a new goroutine for that job
|
|
|
|
Goroutine then launches multiple new goroutines, one per targeted inbox
|
|
|
|
Each of those will wait for a ticker or a stop signal
|
|
|
|
On each ticker they'll try to deliver the payload to the target inbox
|
|
|
|
If a stop signal comes in, push the payload and goal into the db to pick up again later
|
|
|
|
On stop or sucessful delivery, exit the goroutine
|
2024-09-13 13:02:32 +00:00
|
|
|
*/
|