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.4 kB

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