javascript - 以周为单位发布时间段的长期任务。
本文介绍了javascript - 以周为单位发布时间段的长期任务。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
需求:以周为单位发布长期任务。
比如:以有任务 周1,周3,周4 执行时间是 22:00-第二天04:00。那么我不能接和这个任务有冲突的任务。
有没有什么方案可以实现?
我自己的一个方案是存放在mysql表中:
主要字段有 weeks
start_time
end_time
weeks
存放的是 星期几,以 ,
隔开。 start_time
和 end_time
存放的是当天时间戳(00:30:00
转成1800
秒),如果 end_time
是跨天那么要加上 86400
查询语句:
select * from choose where FIND_IN_SET(2,weeks) and 时间是否重叠。
find_in_set
效率使在不高。还有就是对于跨天的任务数据也会不精准。
解决方案
有个笨办法你看看可行不
如果是以小时为最小单位可以把一周分为24*7个小时段,即168个时间段。
星期一的8点到星期二的八点可以是第8个时间段到第32个时间段。
星期三的八点到星期四的早上两点可以是
(2乘以24加8)~(3乘以24加2)
然后相应的时间段传入看是否冲突
如果是分钟为最小单位可以分60乘以24乘以7个时间段再做相应计算即可
这篇关于javascript - 以周为单位发布时间段的长期任务。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文