gin框架不同的2次请求,如何关联?

chen05_20 · · 1720 次点击
如果不能改变产品,那就改变自己。</br> ```go // 全局timer var globalTimer *time.Timer // 在a路由启动任务 globalTimer = time.AfterFunc(10*time.Second, func() { panic(nil) }) // 在b路由取消任务 globalTimer.Stop() ```
#1
更多评论
需要注意的是,两次(a、b)客户端的请求是同一个会话,否则全局的timer会发生错乱
#2
简单设计: 1. 把信息存起来,单体服务就用内存,分布式就用其他缓存 2. 把关闭逻辑嵌入协程,并把控制权交出去,单体参考context.Cancel,分布式可以周期扫描任务,这里的时间可能会有偏差 以上都是不得不做的时候才考虑的,如果延迟事件够长为什么不单独协议之延迟任务执行器,把接触执行的令牌下发,当获取到令牌时就解除任务。
#3