diff options
Diffstat (limited to 'modules/cron/cron.go')
-rw-r--r-- | modules/cron/cron.go | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/modules/cron/cron.go b/modules/cron/cron.go deleted file mode 100644 index ae309bd866..0000000000 --- a/modules/cron/cron.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2014 The Gogs Authors. All rights reserved. -// Copyright 2019 The Gitea Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package cron - -import ( - "context" - "time" - - "code.gitea.io/gitea/modules/graceful" - "code.gitea.io/gitea/modules/sync" - - "github.com/gogs/cron" -) - -var c = cron.New() - -// Prevent duplicate running tasks. -var taskStatusTable = sync.NewStatusTable() - -// NewContext begins cron tasks -// Each cron task is run within the shutdown context as a running server -// AtShutdown the cron server is stopped -func NewContext() { - initBasicTasks() - initExtendedTasks() - - lock.Lock() - for _, task := range tasks { - if task.IsEnabled() && task.DoRunAtStart() { - go task.Run() - } - } - - c.Start() - started = true - lock.Unlock() - graceful.GetManager().RunAtShutdown(context.Background(), func() { - c.Stop() - lock.Lock() - started = false - lock.Unlock() - }) - -} - -// TaskTableRow represents a task row in the tasks table -type TaskTableRow struct { - Name string - Spec string - Next time.Time - Prev time.Time - ExecTimes int64 -} - -// TaskTable represents a table of tasks -type TaskTable []*TaskTableRow - -// ListTasks returns all running cron tasks. -func ListTasks() TaskTable { - entries := c.Entries() - eMap := map[string]*cron.Entry{} - for _, e := range entries { - eMap[e.Description] = e - } - lock.Lock() - defer lock.Unlock() - tTable := make([]*TaskTableRow, 0, len(tasks)) - for _, task := range tasks { - spec := "-" - var ( - next time.Time - prev time.Time - ) - if e, ok := eMap[task.Name]; ok { - spec = e.Spec - next = e.Next - prev = e.Prev - } - task.lock.Lock() - tTable = append(tTable, &TaskTableRow{ - Name: task.Name, - Spec: spec, - Next: next, - Prev: prev, - ExecTimes: task.ExecTimes, - }) - task.lock.Unlock() - } - - return tTable -} |