modified Maintance routine to use time.After channel, not tick.

pull/655/head
hunterlong 2020-06-10 23:21:53 -07:00
parent 1b68476b81
commit bc45135301
4 changed files with 14 additions and 10 deletions

View File

@ -175,7 +175,7 @@ func InitApp() error {
if _, err := services.SelectAllServices(true); err != nil { if _, err := services.SelectAllServices(true); err != nil {
return err return err
} }
go services.CheckServices() services.CheckServices()
notifiers.InitNotifiers() notifiers.InitNotifiers()
go database.Maintenance() go database.Maintenance()
utils.SentryInit(&VERSION, core.App.AllowReports.Bool) utils.SentryInit(&VERSION, core.App.AllowReports.Bool)

View File

@ -23,7 +23,9 @@ func Maintenance() {
log.Infof("Database Cleanup runs every %s and will remove records older than %s", interval.String(), dur.String()) log.Infof("Database Cleanup runs every %s and will remove records older than %s", interval.String(), dur.String())
ticker := interval ticker := interval
for range time.Tick(ticker) { for {
select {
case <-time.After(ticker):
deleteAfter := utils.Now().Add(-dur) deleteAfter := utils.Now().Add(-dur)
log.Infof("Deleting failures older than %s", deleteAfter.String()) log.Infof("Deleting failures older than %s", deleteAfter.String())
@ -36,6 +38,8 @@ func Maintenance() {
} }
} }
}
// deleteAllSince will delete a specific table's records based on a time. // deleteAllSince will delete a specific table's records based on a time.
func deleteAllSince(table string, date time.Time) { func deleteAllSince(table string, date time.Time) {
sql := fmt.Sprintf("DELETE FROM %s WHERE created_at < '%s'", table, database.FormatTime(date)) sql := fmt.Sprintf("DELETE FROM %s WHERE created_at < '%s'", table, database.FormatTime(date))

View File

@ -117,7 +117,7 @@ func processSetupHandler(w http.ResponseWriter, r *http.Request) {
return return
} }
go services.CheckServices() services.CheckServices()
core.App.Setup = true core.App.Setup = true

View File

@ -21,7 +21,7 @@ import (
func CheckServices() { func CheckServices() {
log.Infoln(fmt.Sprintf("Starting monitoring process for %v Services", len(allServices))) log.Infoln(fmt.Sprintf("Starting monitoring process for %v Services", len(allServices)))
for _, s := range allServices { for _, s := range allServices {
time.Sleep(250 * time.Millisecond) time.Sleep(50 * time.Millisecond)
go ServiceCheckQueue(s, true) go ServiceCheckQueue(s, true)
} }
} }