Flush the message tracker at a regular interval

master
Hugo Thunnissen 4 years ago
parent 8e71243dab
commit 32eddf7498

@ -6,6 +6,7 @@ import (
"os"
"os/signal"
"syscall"
"time"
"github.com/hugot/go-deltachat/deltabot"
"github.com/hugot/go-deltachat/deltachat"
@ -40,6 +41,7 @@ func main() {
messageTracker := &core.MessageTracker{
DB: db,
}
messageTracker.FlushWithInterval(15 * time.Minute)
defer messageTracker.Flush()

@ -1,7 +1,9 @@
package core
import (
"log"
"sync"
"time"
)
// MessageTracker will keep track of encountered whatsapp messages to prevent sending them
@ -53,3 +55,16 @@ func (t *MessageTracker) Flush() error {
func (t *MessageTracker) WasSent(ID string) (bool, error) {
return t.DB.WhappMessageWasSent(ID)
}
func (t *MessageTracker) FlushWithInterval(interval time.Duration) {
go func() {
for {
time.Sleep(interval)
err := t.Flush()
if err != nil {
log.Println(err)
}
}
}()
}

Loading…
Cancel
Save