[WIP] Add cron-like job for periodic maintenance of settings db, update TODO.md
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"os"
|
||||
|
||||
"github.com/NicoNex/echotron/v3"
|
||||
"github.com/carlescere/scheduler"
|
||||
"github.com/cockroachdb/pebble"
|
||||
"github.com/go-redis/redis/v8"
|
||||
)
|
||||
@@ -45,6 +46,9 @@ var (
|
||||
"Добро пожаловать в наше скромное коммунити",
|
||||
"Наше вам с кисточкой тут, на канальчике",
|
||||
}
|
||||
|
||||
// PeriodicJobs contains pointer to slice with sheduled job objects.
|
||||
PeriodicJobs = make([]*scheduler.Job, 0)
|
||||
)
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
|
||||
23
internal/tg/periodicJobs.go
Normal file
23
internal/tg/periodicJobs.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package tg
|
||||
|
||||
import (
|
||||
"aleesa-telegram-go/internal/log"
|
||||
)
|
||||
|
||||
var (
|
||||
// TidySettingsDB flushes regularly pebble dbs with settings. Remmended action to keeb that db in a good shape.
|
||||
// Meant to be run about hourly or something like that.
|
||||
TidySettingsDB = func() {
|
||||
if len(settingsDB) > 0 {
|
||||
for name, db := range settingsDB {
|
||||
log.Debugf("Flushing %s settings db", name)
|
||||
|
||||
if err := db.Flush(); err != nil {
|
||||
log.Errorf("Unable to Flush() %s db: %s", name, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */
|
||||
@@ -42,18 +42,12 @@ func SigHandler() {
|
||||
log.Debug("Close redis connection")
|
||||
}
|
||||
|
||||
// close all telego stuff.
|
||||
resp, err := tg.LogOut()
|
||||
|
||||
if err != nil {
|
||||
log.Errorf("Unable to send LogOut() to Telegram Bot API server")
|
||||
// Quit all scheduled periodic jobs.
|
||||
for _, job := range PeriodicJobs {
|
||||
job.Quit <- true
|
||||
}
|
||||
|
||||
if !resp.Ok {
|
||||
log.Errorf("Telegram Bot API returns an error on LogOut(): %d, %s", resp.ErrorCode, resp.Description)
|
||||
}
|
||||
|
||||
resp, err = tg.Close()
|
||||
resp, err := tg.Close()
|
||||
|
||||
if err != nil {
|
||||
log.Errorf("Unable to send Close() to Telegram Bot API server")
|
||||
|
||||
Reference in New Issue
Block a user