mirror of
https://github.com/simon987/task_tracker.git
synced 2025-04-10 05:56:42 +00:00
35 lines
795 B
Go
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")
|
|
}
|