mirror of https://github.com/Xhofe/alist
				
				
				
			🔧 Custom cache duration
							parent
							
								
									cf2506901f
								
							
						
					
					
						commit
						582f7bbfee
					
				
							
								
								
									
										4
									
								
								alist.go
								
								
								
								
							
							
						
						
									
										4
									
								
								alist.go
								
								
								
								
							|  | @ -48,8 +48,8 @@ func main() { | |||
| 	base := fmt.Sprintf("%s:%d", conf.Conf.Address, conf.Conf.Port) | ||||
| 	log.Infof("start server @ %s", base) | ||||
| 	var err error | ||||
| 	if conf.Conf.Https { | ||||
| 		err = r.RunTLS(base, conf.Conf.CertFile, conf.Conf.KeyFile) | ||||
| 	if conf.Conf.Scheme.Https { | ||||
| 		err = r.RunTLS(base, conf.Conf.Scheme.CertFile, conf.Conf.Scheme.KeyFile) | ||||
| 	} else { | ||||
| 		err = r.Run(base) | ||||
| 	} | ||||
|  |  | |||
|  | @ -12,7 +12,11 @@ import ( | |||
| // InitCache init cache
 | ||||
| func InitCache() { | ||||
| 	log.Infof("init cache...") | ||||
| 	goCacheClient := goCache.New(60*time.Minute, 120*time.Minute) | ||||
| 	c := conf.Conf.Cache | ||||
| 	if c.Expiration == 0 { | ||||
| 		c.Expiration, c.CleanupInterval = 60, 120 | ||||
| 	} | ||||
| 	goCacheClient := goCache.New(time.Duration(c.Expiration)*time.Minute, time.Duration(c.CleanupInterval)*time.Minute) | ||||
| 	goCacheStore := store.NewGoCache(goCacheClient, nil) | ||||
| 	conf.Cache = cache.New(goCacheStore) | ||||
| } | ||||
|  |  | |||
|  | @ -10,14 +10,25 @@ type Database struct { | |||
| 	TablePrefix string `json:"table_prefix"` | ||||
| 	DBFile      string `json:"db_file"` | ||||
| } | ||||
| 
 | ||||
| type Scheme struct { | ||||
| 	Https    bool   `json:"https"` | ||||
| 	CertFile string `json:"cert_file"` | ||||
| 	KeyFile  string `json:"key_file"` | ||||
| } | ||||
| 
 | ||||
| type CacheConfig struct { | ||||
| 	Expiration      int64 `json:"expiration"` | ||||
| 	CleanupInterval int64 `json:"cleanup_interval"` | ||||
| } | ||||
| 
 | ||||
| type Config struct { | ||||
| 	Address  string   `json:"address"` | ||||
| 	Port     int      `json:"port"` | ||||
| 	Database Database `json:"database"` | ||||
| 	Https    bool     `json:"https"` | ||||
| 	CertFile string   `json:"cert_file"` | ||||
| 	KeyFile  string   `json:"key_file"` | ||||
| 	Local    bool     `json:"local"` | ||||
| 	Address  string      `json:"address"` | ||||
| 	Port     int         `json:"port"` | ||||
| 	Local    bool        `json:"local"` | ||||
| 	Database Database    `json:"database"` | ||||
| 	Scheme   Scheme      `json:"scheme"` | ||||
| 	Cache    CacheConfig `json:"cache"` | ||||
| } | ||||
| 
 | ||||
| func DefaultConfig() *Config { | ||||
|  | @ -30,5 +41,9 @@ func DefaultConfig() *Config { | |||
| 			TablePrefix: "x_", | ||||
| 			DBFile:      "data/data.db", | ||||
| 		}, | ||||
| 		Cache: CacheConfig{ | ||||
| 			Expiration:      60, | ||||
| 			CleanupInterval: 120, | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 微凉
						微凉