【发布时间】:2013-08-03 09:46:36
【问题描述】:
我们正在编写一个解析基于时间的事件的系统,我们希望为这些事件实现一个抑制系统,我们可以提供类似 cron 的语法来进行匹配。
例如抑制如果...
- .. 事件发生在每月的最后一个星期五
- .. 事件发生在工作日下午 4 点到 5 点之间
- .. 事件发生在星期日
等等。
我们使用的是 Python,所以我希望可能有一个模块来做这种事情,但我的搜索技能让我失望(很多关于安排事件的结果,而我想要相反 - 当前时间匹配定义的时间表)。
或者,如果有人对存储时间和比较时间与时间表的最佳方式有任何建议,我很乐意从头开始编写。
编辑:
为了澄清,抑制时间表并不是一成不变的,所以我不能简单地编写一个函数来处理特定情况。时间表需要存储在数据库中,并与事件相关联,所以我可以大致做到:
sql_rows = ..... "SELECT * FROM suppressions WHERE event_id = ?"
for row in sql_rows:
if matchesSchedule(current_time,row):
print "This should be suppressed"
所以我需要以一种可以存储在表格中的格式来表示时间表,然后将列与当前时间组件进行匹配。
【问题讨论】:
-
@NikhilRupanawar 不幸的是没有。正如我提到的,我不是在安排活动,更像是测试时间是否与给定的时间表匹配。
-
如果我理解正确,您只想将给定时间与一组时间模式进行比较,并检查它是否匹配其中一个或多个。直接的方法是将您给定的时间转换为
datetime对象,然后检查该对象的约束,例如d.weekday() in (4, 5, 6) and d.hour == 10。为什么不可能?
标签: python datetime suppression