add cron job to delete old actions from database (#15688)
that's a way to save database storage space. Signed-off-by: a1012112796 <1012112796@qq.com>
This commit is contained in:
		
							parent
							
								
									ca0460beb7
								
							
						
					
					
						commit
						ae6d7860be
					
				
					 5 changed files with 42 additions and 0 deletions
				
			
		|  | @ -1145,6 +1145,14 @@ RUN_AT_START = false | ||||||
| NO_SUCCESS_NOTICE = false | NO_SUCCESS_NOTICE = false | ||||||
| SCHEDULE = @every 72h | SCHEDULE = @every 72h | ||||||
| 
 | 
 | ||||||
|  | ; Delete all old actions from database | ||||||
|  | [cron.delete_old_actions] | ||||||
|  | ENABLED = false | ||||||
|  | RUN_AT_START = false | ||||||
|  | NO_SUCCESS_NOTICE = false | ||||||
|  | SCHEDULE = @every 168h | ||||||
|  | OLDER_THAN = 8760h | ||||||
|  | 
 | ||||||
| [git] | [git] | ||||||
| ; The path of git executable. If empty, Gitea searches through the PATH environment. | ; The path of git executable. If empty, Gitea searches through the PATH environment. | ||||||
| PATH = | PATH = | ||||||
|  |  | ||||||
|  | @ -786,6 +786,13 @@ NB: You must have `DISABLE_ROUTER_LOG` set to `false` for this option to take ef | ||||||
| - `NO_SUCCESS_NOTICE`: **false**: Set to true to switch off success notices. | - `NO_SUCCESS_NOTICE`: **false**: Set to true to switch off success notices. | ||||||
| - `SCHEDULE`: **@every 72h**: Cron syntax for scheduling repository archive cleanup, e.g. `@every 1h`. | - `SCHEDULE`: **@every 72h**: Cron syntax for scheduling repository archive cleanup, e.g. `@every 1h`. | ||||||
| 
 | 
 | ||||||
|  | #### Cron -  Delete all old actions from database ('cron.delete_old_actions') | ||||||
|  | - `ENABLED`: **false**: Enable service. | ||||||
|  | - `RUN_AT_START`: **false**: Run tasks at start up time (if ENABLED). | ||||||
|  | - `NO_SUCCESS_NOTICE`: **false**: Set to true to switch off success notices. | ||||||
|  | - `SCHEDULE`: **@every 128h**: Cron syntax for scheduling a work, e.g. `@every 128h`. | ||||||
|  | - `OLDER_THAN`: **@every 8760h**: any action older than this expression will be deleted from database, suggest using `8760h` (1 year) because that's the max length of heatmap. | ||||||
|  | 
 | ||||||
| ## Git (`git`) | ## Git (`git`) | ||||||
| 
 | 
 | ||||||
| - `PATH`: **""**: The path of git executable. If empty, Gitea searches through the PATH environment. | - `PATH`: **""**: The path of git executable. If empty, Gitea searches through the PATH environment. | ||||||
|  |  | ||||||
|  | @ -395,3 +395,13 @@ func activityQueryCondition(opts GetFeedsOptions) (builder.Cond, error) { | ||||||
| 
 | 
 | ||||||
| 	return cond, nil | 	return cond, nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // DeleteOldActions deletes all old actions from database.
 | ||||||
|  | func DeleteOldActions(olderThan time.Duration) (err error) { | ||||||
|  | 	if olderThan <= 0 { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	_, err = x.Where("created_unix < ?", time.Now().Add(-olderThan).Unix()).Delete(&Action{}) | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -117,6 +117,20 @@ func registerRemoveRandomAvatars() { | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func registerDeleteOldActions() { | ||||||
|  | 	RegisterTaskFatal("delete_old_actions", &OlderThanConfig{ | ||||||
|  | 		BaseConfig: BaseConfig{ | ||||||
|  | 			Enabled:    false, | ||||||
|  | 			RunAtStart: false, | ||||||
|  | 			Schedule:   "@every 168h", | ||||||
|  | 		}, | ||||||
|  | 		OlderThan: 365 * 24 * time.Hour, | ||||||
|  | 	}, func(ctx context.Context, _ *models.User, config Config) error { | ||||||
|  | 		olderThanConfig := config.(*OlderThanConfig) | ||||||
|  | 		return models.DeleteOldActions(olderThanConfig.OlderThan) | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func initExtendedTasks() { | func initExtendedTasks() { | ||||||
| 	registerDeleteInactiveUsers() | 	registerDeleteInactiveUsers() | ||||||
| 	registerDeleteRepositoryArchives() | 	registerDeleteRepositoryArchives() | ||||||
|  | @ -127,4 +141,5 @@ func initExtendedTasks() { | ||||||
| 	registerReinitMissingRepositories() | 	registerReinitMissingRepositories() | ||||||
| 	registerDeleteMissingRepositories() | 	registerDeleteMissingRepositories() | ||||||
| 	registerRemoveRandomAvatars() | 	registerRemoveRandomAvatars() | ||||||
|  | 	registerDeleteOldActions() | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2179,6 +2179,8 @@ dashboard.total_gc_time = Total GC Pause | ||||||
| dashboard.total_gc_pause = Total GC Pause | dashboard.total_gc_pause = Total GC Pause | ||||||
| dashboard.last_gc_pause = Last GC Pause | dashboard.last_gc_pause = Last GC Pause | ||||||
| dashboard.gc_times = GC Times | dashboard.gc_times = GC Times | ||||||
|  | dashboard.delete_old_actions = Delete all old actions from database | ||||||
|  | dashboard.delete_old_actions.started = Delete all old actions from database started. | ||||||
| 
 | 
 | ||||||
| users.user_manage_panel = User Account Management | users.user_manage_panel = User Account Management | ||||||
| users.new_account = Create User Account | users.new_account = Create User Account | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue