From 36f02c0c329760c556dfd143c3e9def5416c9640 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 5 May 2017 10:13:48 +0800 Subject: [PATCH] fix potential sqlite lock --- models/webhook.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/models/webhook.go b/models/webhook.go index 8cd2b7dd4..3fb1e57e7 100644 --- a/models/webhook.go +++ b/models/webhook.go @@ -612,18 +612,16 @@ func (t *HookTask) deliver() { // TODO: shoot more hooks at same time. func DeliverHooks() { tasks := make([]*HookTask, 0, 10) - x. - Where("is_delivered=?", false). - Iterate(new(HookTask), - func(idx int, bean interface{}) error { - t := bean.(*HookTask) - t.deliver() - tasks = append(tasks, t) - return nil - }) + err := x.Where("is_delivered=?", false).Find(&tasks) + if err != nil { + log.Error(4, "DeliverHooks: %v", err) + return + } // Update hook task status. for _, t := range tasks { + t.deliver() + if err := UpdateHookTask(t); err != nil { log.Error(4, "UpdateHookTask [%d]: %v", t.ID, err) }