批处理定时任务的实现方式,不外乎下面这样。当然,在数据量较大时,也会采用分页获取数据分批处理。

【不靠谱程序员】不靠谱程序员这样做幂等控制_定时任务

批处理程序通常包含大批量数据的处理,这样的程序执行时间一般也比较长。anyway,对于这样的程序,技术上做好防重复请求是一项基本要求。

 

下面rest接口用来暴露给一个定时调度程序来调用。这个接口的业务逻辑是将系统里待付款的交易发往银行。做过支付的同学应该明白,这种程序是必须要做好重复处理的。

当然,你也看到了,这个rest接口并未做防重。当追问编写这段代码的小伙时,他表示,在for循环里,已经用redis做了幂等防重控制,外面接口就无所谓了吧。

这种无所谓的态度,各位看官,你接受吗?

【不靠谱程序员】不靠谱程序员这样做幂等控制_执行时间_02

 

 

附:插图素材来自processOn