##需求描述:
根据某个任务设定的时间段判断当前时间是否能合法执行某个任务,即当前时间在不在任务设定的时间段范围内,比如任务 A,可设置执行时间段,06:00-6:20,7:40-8:00 等,假如以 20 分为间隔,将 24 小时拆分,需要判断执行任务 A 前判断设定时间段与当前时间是否匹配。
补充:当前时间段内执行一次即可;
##方案 1:
很烂的方法,将时间段数组存储字符字段,每次取出拆分进行匹配,
##方案 2:
参考了http://hui.lu/shi-jian-duan-ji-lu-xiao-ji-qiao/ 将 24 小时以 20 分钟拆分一个数组,用数组索引标识每个时间段,然后按参考链接的方案,类似做二进制权限那样存储一个数值,通过数值计算是否当前执行条件符合时间段规则。
##方案 3:
将时间段看成是 tag,将任务设定的执行时间看成打标签,以给任务打标签的方式去维护时间段,同时结合 redis 数据结构做缓存。从时间段(tag)的角度去看问题;
##其它方案 //todo...
谢谢!