diff --git a/outgoingEventQueue/queue.go b/outgoingEventQueue/queue.go index 835e230..14c2291 100644 --- a/outgoingEventQueue/queue.go +++ b/outgoingEventQueue/queue.go @@ -7,4 +7,12 @@ Queue for controlled distribution of outgoing events, such as note creations, de 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 + + +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 */ diff --git a/storage/housekeeping.go b/storage/housekeeping.go new file mode 100644 index 0000000..aa7a815 --- /dev/null +++ b/storage/housekeeping.go @@ -0,0 +1,6 @@ +package storage + +// Contains various functions for housekeeping +// Things like true deletion of soft deleted data after some time +// Or removing inactive access tokens +// All of this will be handled by goroutines