task_tracker/storage/maintenance.go
2019-03-10 09:47:11 -04:00

35 lines
795 B
Go

package storage
import (
"github.com/sirupsen/logrus"
)
func (database *Database) ResetFailedTasks(pid int64) int64 {
db := database.getDB()
res, err := db.Exec(`UPDATE task SET status=1, retries=0, assign_time=NULL, assignee=NULL
WHERE project=$1 AND status=2`, pid)
handleErr(err)
rowsAffected, _ := res.RowsAffected()
return rowsAffected
}
func (database *Database) ResetTimedOutTasks() {
db := database.getDB()
res, err := db.Exec(`
UPDATE task SET assignee=NULL, assign_time=NULL
WHERE status=1 AND assignee IS NOT NULL
AND extract(epoch from now() at time zone 'utc') > (assign_time + max_assign_time);`)
handleErr(err)
rowsAffected, _ := res.RowsAffected()
logrus.WithFields(logrus.Fields{
"rowsAffected": rowsAffected,
}).Info("Reset timed out tasks")
}