Check if task is processing before processing it
This commit is contained in:
parent
91fdfc17b1
commit
c4d4154175
@ -19,10 +19,25 @@ type Task struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func processTask(task *Task, s *discordgo.Session) {
|
func processTask(task *Task, s *discordgo.Session) {
|
||||||
|
query := "SELECT completed, processing from tasks where id = $1"
|
||||||
|
res, err := Database.Query(query, task.ID)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
var completed bool
|
||||||
|
var processing bool
|
||||||
|
err = res.Scan(&completed, &processing)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if completed || processing {
|
||||||
|
return
|
||||||
|
}
|
||||||
closeQuery := "Update tasks set completed = true where id = $1"
|
closeQuery := "Update tasks set completed = true where id = $1"
|
||||||
processQuery := "UPDATE tasks SET processing = true WHERE id = $1"
|
processQuery := "UPDATE tasks SET processing = true WHERE id = $1"
|
||||||
defer Database.Exec(closeQuery, task.ID)
|
defer Database.Exec(closeQuery, task.ID)
|
||||||
_, err := Database.Exec(processQuery, task.ID)
|
_, err = Database.Exec(processQuery, task.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
@ -67,6 +82,12 @@ func processTask(task *Task, s *discordgo.Session) {
|
|||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
processQuery = "UPDATE tasks SET processing = false WHERE id = $1"
|
||||||
|
_, err = Database.Exec(processQuery, task.ID)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getTasksToRun() []Task {
|
func getTasksToRun() []Task {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user