You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

tasks_basic.go 8.0 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. // Copyright 2020 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package cron
  5. import (
  6. "context"
  7. "time"
  8. "code.gitea.io/gitea/modules/modelarts"
  9. "code.gitea.io/gitea/services/cloudbrain/resource"
  10. "code.gitea.io/gitea/services/reward"
  11. "code.gitea.io/gitea/models"
  12. "code.gitea.io/gitea/modules/migrations"
  13. repository_service "code.gitea.io/gitea/modules/repository"
  14. "code.gitea.io/gitea/routers/repo"
  15. mirror_service "code.gitea.io/gitea/services/mirror"
  16. )
  17. func registerUpdateMirrorTask() {
  18. RegisterTaskFatal("update_mirrors", &BaseConfig{
  19. Enabled: true,
  20. RunAtStart: false,
  21. Schedule: "@every 10m",
  22. }, func(ctx context.Context, _ *models.User, _ Config) error {
  23. return mirror_service.Update(ctx)
  24. })
  25. }
  26. func registerRepoHealthCheck() {
  27. type RepoHealthCheckConfig struct {
  28. BaseConfig
  29. Timeout time.Duration
  30. Args []string `delim:" "`
  31. }
  32. RegisterTaskFatal("repo_health_check", &RepoHealthCheckConfig{
  33. BaseConfig: BaseConfig{
  34. Enabled: true,
  35. RunAtStart: false,
  36. Schedule: "@every 24h",
  37. },
  38. Timeout: 60 * time.Second,
  39. Args: []string{},
  40. }, func(ctx context.Context, _ *models.User, config Config) error {
  41. rhcConfig := config.(*RepoHealthCheckConfig)
  42. return repository_service.GitFsck(ctx, rhcConfig.Timeout, rhcConfig.Args)
  43. })
  44. }
  45. func registerCheckRepoStats() {
  46. RegisterTaskFatal("check_repo_stats", &BaseConfig{
  47. Enabled: true,
  48. RunAtStart: true,
  49. Schedule: "@every 24h",
  50. }, func(ctx context.Context, _ *models.User, _ Config) error {
  51. return models.CheckRepoStats(ctx)
  52. })
  53. }
  54. func registerArchiveCleanup() {
  55. RegisterTaskFatal("archive_cleanup", &OlderThanConfig{
  56. BaseConfig: BaseConfig{
  57. Enabled: true,
  58. RunAtStart: true,
  59. Schedule: "@every 24h",
  60. },
  61. OlderThan: 24 * time.Hour,
  62. }, func(ctx context.Context, _ *models.User, config Config) error {
  63. acConfig := config.(*OlderThanConfig)
  64. return models.DeleteOldRepositoryArchives(ctx, acConfig.OlderThan)
  65. })
  66. }
  67. func registerSyncExternalUsers() {
  68. RegisterTaskFatal("sync_external_users", &UpdateExistingConfig{
  69. BaseConfig: BaseConfig{
  70. Enabled: true,
  71. RunAtStart: false,
  72. Schedule: "@every 24h",
  73. },
  74. UpdateExisting: true,
  75. }, func(ctx context.Context, _ *models.User, config Config) error {
  76. realConfig := config.(*UpdateExistingConfig)
  77. return models.SyncExternalUsers(ctx, realConfig.UpdateExisting)
  78. })
  79. }
  80. func registerDeletedBranchesCleanup() {
  81. RegisterTaskFatal("deleted_branches_cleanup", &OlderThanConfig{
  82. BaseConfig: BaseConfig{
  83. Enabled: true,
  84. RunAtStart: true,
  85. Schedule: "@every 24h",
  86. },
  87. OlderThan: 24 * time.Hour,
  88. }, func(ctx context.Context, _ *models.User, config Config) error {
  89. realConfig := config.(*OlderThanConfig)
  90. models.RemoveOldDeletedBranches(ctx, realConfig.OlderThan)
  91. return nil
  92. })
  93. }
  94. func registerUpdateMigrationPosterID() {
  95. RegisterTaskFatal("update_migration_poster_id", &BaseConfig{
  96. Enabled: true,
  97. RunAtStart: true,
  98. Schedule: "@every 24h",
  99. }, func(ctx context.Context, _ *models.User, _ Config) error {
  100. return migrations.UpdateMigrationPosterID(ctx)
  101. })
  102. }
  103. func registerHandleUnDecompressAttachment() {
  104. RegisterTaskFatal("handle_undecompress_attachment", &BaseConfig{
  105. Enabled: true,
  106. RunAtStart: true,
  107. Schedule: "@every 10m",
  108. }, func(ctx context.Context, _ *models.User, _ Config) error {
  109. repo.HandleUnDecompressAttachment()
  110. return nil
  111. })
  112. }
  113. func registerHandleModelSafetyTask() {
  114. RegisterTaskFatal("handle_modelsafety_task", &BaseConfig{
  115. Enabled: true,
  116. RunAtStart: true,
  117. Schedule: "@every 5m",
  118. }, func(ctx context.Context, _ *models.User, _ Config) error {
  119. repo.TimerHandleModelSafetyTestTask()
  120. return nil
  121. })
  122. }
  123. func registerHandleBlockChainUnSuccessUsers() {
  124. RegisterTaskFatal("handle_blockchain_unsuccess_users", &BaseConfig{
  125. Enabled: true,
  126. RunAtStart: true,
  127. Schedule: "@every 10m",
  128. }, func(ctx context.Context, _ *models.User, _ Config) error {
  129. repo.HandleBlockChainUnSuccessUsers()
  130. return nil
  131. })
  132. }
  133. func registerHandleBlockChainUnSuccessRepos() {
  134. RegisterTaskFatal("handle_blockchain_unsuccess_repos", &BaseConfig{
  135. Enabled: true,
  136. RunAtStart: true,
  137. Schedule: "@every 10m",
  138. }, func(ctx context.Context, _ *models.User, _ Config) error {
  139. repo.HandleBlockChainUnSuccessRepos()
  140. return nil
  141. })
  142. }
  143. func registerHandleBlockChainMergedPulls() {
  144. RegisterTaskFatal("handle_blockchain_merged_pull", &BaseConfig{
  145. Enabled: true,
  146. RunAtStart: true,
  147. Schedule: "@every 10m",
  148. }, func(ctx context.Context, _ *models.User, _ Config) error {
  149. repo.HandleBlockChainMergedPulls()
  150. return nil
  151. })
  152. }
  153. func registerHandleBlockChainUnSuccessCommits() {
  154. RegisterTaskFatal("handle_blockchain_unsuccess_commits", &BaseConfig{
  155. Enabled: true,
  156. RunAtStart: true,
  157. Schedule: "@every 10m",
  158. }, func(ctx context.Context, _ *models.User, _ Config) error {
  159. repo.HandleBlockChainUnSuccessCommits()
  160. return nil
  161. })
  162. }
  163. func registerHandleRepoAndUserStatistic() {
  164. RegisterTaskFatal("handle_repo_and_user_statistic", &BaseConfig{
  165. Enabled: true,
  166. RunAtStart: false,
  167. Schedule: "@daily",
  168. }, func(ctx context.Context, _ *models.User, _ Config) error {
  169. repo.StatisticAuto()
  170. return nil
  171. })
  172. }
  173. func registerHandleSummaryStatistic() {
  174. RegisterTaskFatal("handle_summary_statistic", &BaseConfig{
  175. Enabled: true,
  176. RunAtStart: false,
  177. Schedule: "@daily",
  178. }, func(ctx context.Context, _ *models.User, _ Config) error {
  179. repo.SummaryStatistic()
  180. return nil
  181. })
  182. }
  183. func registerHandleOrgStatistic() {
  184. RegisterTaskFatal("handle_org_statistic", &BaseConfig{
  185. Enabled: true,
  186. RunAtStart: false,
  187. Schedule: "0 0 2 * * ?",
  188. }, func(ctx context.Context, _ *models.User, _ Config) error {
  189. models.UpdateOrgStatistics()
  190. return nil
  191. })
  192. }
  193. func registerSyncCloudbrainStatus() {
  194. RegisterTaskFatal("sync_cloudbrain_status", &BaseConfig{
  195. Enabled: true,
  196. RunAtStart: false,
  197. Schedule: "@every 10m",
  198. }, func(ctx context.Context, _ *models.User, _ Config) error {
  199. repo.SyncCloudbrainStatus()
  200. return nil
  201. })
  202. }
  203. func registerRewardPeriodTask() {
  204. RegisterTaskFatal("reward_period_task", &BaseConfig{
  205. Enabled: true,
  206. RunAtStart: true,
  207. Schedule: "@every 1m",
  208. }, func(ctx context.Context, _ *models.User, _ Config) error {
  209. reward.StartRewardTask()
  210. return nil
  211. })
  212. }
  213. func registerCloudbrainPointDeductTask() {
  214. RegisterTaskFatal("cloudbrain_point_deduct_task", &BaseConfig{
  215. Enabled: true,
  216. RunAtStart: true,
  217. Schedule: "@every 1m",
  218. }, func(ctx context.Context, _ *models.User, _ Config) error {
  219. reward.StartCloudbrainPointDeductTask()
  220. return nil
  221. })
  222. }
  223. func registerSyncResourceSpecs() {
  224. RegisterTaskFatal("sync_grampus_specs", &BaseConfig{
  225. Enabled: true,
  226. RunAtStart: true,
  227. Schedule: "0 0 1 * * ?",
  228. }, func(ctx context.Context, _ *models.User, _ Config) error {
  229. resource.SyncGrampusQueueAndSpecs()
  230. return nil
  231. })
  232. }
  233. func registerSyncModelArtsTempJobs() {
  234. RegisterTaskFatal("sync_model_arts_temp_jobs", &BaseConfig{
  235. Enabled: true,
  236. RunAtStart: false,
  237. Schedule: "@every 1m",
  238. }, func(ctx context.Context, _ *models.User, _ Config) error {
  239. modelarts.SyncTempStatusJob()
  240. return nil
  241. })
  242. }
  243. func initBasicTasks() {
  244. registerUpdateMirrorTask()
  245. registerRepoHealthCheck()
  246. registerCheckRepoStats()
  247. registerArchiveCleanup()
  248. registerSyncExternalUsers()
  249. registerDeletedBranchesCleanup()
  250. registerUpdateMigrationPosterID()
  251. registerHandleUnDecompressAttachment()
  252. registerHandleBlockChainUnSuccessUsers()
  253. registerHandleBlockChainUnSuccessRepos()
  254. registerHandleBlockChainMergedPulls()
  255. registerHandleBlockChainUnSuccessCommits()
  256. registerHandleRepoAndUserStatistic()
  257. registerHandleSummaryStatistic()
  258. registerSyncCloudbrainStatus()
  259. registerHandleOrgStatistic()
  260. registerSyncResourceSpecs()
  261. registerSyncModelArtsTempJobs()
  262. //registerRewardPeriodTask()
  263. registerCloudbrainPointDeductTask()
  264. registerHandleModelSafetyTask()
  265. }