在定时算法中尽量采用一个定时器,轮询不同的定时需求。
例子:
各家商户的订单,需要设置不同的订单超时时间。
一般做法是每个订单都生成一个相应超时时间的定时器,定时器到了后自动超时。但是同时多个定时器,这样会造成内存占用太多。
建议:
只生成一个定时器(以秒为单位),可以将多个商户的订单分成不同的队列,设置队列id和队列超时时间,定时器去轮询所有的队列,如果订单生成时间加上超时时间超过当前时间即为超时。