| | |
| | | SyncServer string `mapstructure:"sync-server"` |
| | | ReportServer string `mapstructure:"report-server"` |
| | | ReportInterval int `mapstructure:"report-interval"` |
| | | RetryInterval int `mapstructure:"retry-interval"` |
| | | } |
| | | |
| | | type rateLimitConfig struct { |
| | |
| | | ForwardConf.ReportInterval = 10 |
| | | } |
| | | |
| | | if ForwardConf.RetryInterval == 0 { |
| | | ForwardConf.RetryInterval = 5 |
| | | } |
| | | |
| | | logger.SetLogLevel(LogConf.Level) |
| | | } |
| | |
| | | } |
| | | |
| | | func Init() { |
| | | s.Every(10).Minutes().StartImmediately().Do(service.ResendImageData) |
| | | s.Every(config.ForwardConf.RetryInterval).Minutes().StartImmediately().Do(service.ResendImageData) |
| | | s.Every(config.ForwardConf.ReportInterval).Second().StartImmediately().Do(service.DeviceInfoReportTask) |
| | | |
| | | s.StartAsync() |
| | |
| | | } |
| | | |
| | | func (c *Cache) UpdateRetryCount() error { |
| | | return db.Table(c.TableName()).Update("retry", c.Retry+1).Where("id = ?", c.Id).Error |
| | | return db.Table(c.TableName()).Where("id = ?", c.Id).Update("retry", c.Retry+1).Error |
| | | } |
| | | |
| | | func (c *Cache) Delete() error { |
| | |
| | | |
| | | for _, c := range cacheItems { |
| | | if !util.SendData([]byte(c.Data), config.ForwardConf.SyncServer) { |
| | | logger.Warn("The data resend failed. retry count %d", c.Retry) |
| | | c.UpdateRetryCount() |
| | | logger.Warn("The data resend failed. retry count %d", c.Retry+1) |
| | | } else { |
| | | c.Delete() |
| | | logger.Debug("The data resend successful.") |