javascript - 以周为单位发布时间段的长期任务。

查看:61
本文介绍了javascript - 以周为单位发布时间段的长期任务。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

需求:以周为单位发布长期任务。
比如:以有任务 周1,周3,周4 执行时间是 22:00-第二天04:00。那么我不能接和这个任务有冲突的任务。
有没有什么方案可以实现?

我自己的一个方案是存放在mysql表中:
主要字段有 weeks start_time end_time
weeks 存放的是 星期几,以 , 隔开。 start_timeend_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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆