时间轮 slot 机制实现
slot机制Slot 机制,大白话,就是分片机制。可以把时间或空间分成一个个槽,通过一定算法使用这些槽的机制。
有什么用?作用是可以把数据平均分存放到某个槽空间内,比如Hash环中使用的Hash Slot。再比如数组,可以再解为是一种槽机制。这是空间是的槽机制,在时间维度,可以把时间分片,每隔一段时间,就是一个时间槽位。比如:一分钟有60秒,每2秒划分一个槽位就有30个槽,那就可以执行30次;比如:一天有86400秒,每3秒划分一个槽位就有28800个槽。
这里实现一个简单的时间槽机制,分布式场景下,通过这个机制在,去中心化的场景下,让不同的机制按照一定时间槽机制进行运作。
实现要求必须保证是精准的3秒间隔,中间代码处理业务逻辑的时间必须也要计算在内。比如,执行业务逻辑使用100毫秒,那么到下一个3秒的间隔就是2900毫秒;如果,执行业务逻辑使用500毫秒,那么到下一个3秒的间隔就是2500毫秒;如果,执行业务逻辑使用2900毫秒,那么到下一个3秒的间隔就是100毫秒;保证完整的3秒,不多不少。
思路这样的话,就要记录计算所有时间:
标记当前开始时间
记录业务逻辑处理的时间
计算出 ...