内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
TLDR:如何设置POST请求,该请求每秒钟将接收到的数据发送到另一个源,然后当发出相同的POST请求时,它将停止发送旧数据,并每秒钟再次发送新数据。
我有一个带有Express的Node.js服务器正在运行。每当客户机向我的一条路由发出POST请求时,我每秒钟(使用setInterval)向ApacheKafka队列发送数据。当向我的服务器发出新的POST请求时,它会创建setInterval函数的一个新实例,并且实际上每秒钟都发送新数据和旧数据。
我需要Node.js停止将旧数据发送到队列,而是发送新数据。
有什么想法吗?
你有几个选择。
在创建新计时器之前,请停止Interval Timer对象。当你如此setInterval()
它返回一个定时器对象,然后你可以使用它。clearInterval()
稍后。需要保存它。然后,当创建新的间隔计时器时,可以调用clearInterval()
在老计时器上。
让一个计时器一直运行,只需替换你发送的数据。在这种情况下,只需保持原来的计时器运行,每次触发时更新要发送的存储数据,然后永远不会运行多个定时器。