package report import ( "context" "fmt" "time" "kingdee-dbapi/config" ) var ctx context.Context var cancel context.CancelFunc func StartReport() { ctx, cancel = context.WithCancel(context.Background()) go Loop(ctx) } func RestartReport() { cancel() StartReport() } func Loop(c context.Context) { fmt.Println("start report") for { select { case <-c.Done(): fmt.Println("loop break") return default: // 上报订单 SendOrder() // 上报即时库存 SendInventory() time.Sleep(time.Duration(config.Options.SyncInterval) * time.Second) } } }