diff options
Diffstat (limited to 'services/cron/tasks.go')
-rw-r--r-- | services/cron/tasks.go | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/services/cron/tasks.go b/services/cron/tasks.go index 75bb4993c0..29062233c8 100644 --- a/services/cron/tasks.go +++ b/services/cron/tasks.go @@ -82,11 +82,10 @@ func (t *Task) RunWithUser(doer *user_model.User, config Config) { } }() graceful.GetManager().RunWithShutdownContext(func(baseCtx context.Context) { - ctx, cancel := context.WithCancel(baseCtx) - defer cancel() pm := process.GetManager() - pid := pm.Add(config.FormatMessage(t.Name, "process", doer), cancel) - defer pm.Remove(pid) + ctx, _, finished := pm.AddContext(baseCtx, config.FormatMessage(t.Name, "process", doer)) + defer finished() + if err := t.fun(ctx, doer, config); err != nil { if db.IsErrCancelled(err) { message := err.(db.ErrCancelled).Message |