假设我安排了一个将来与start_date
,end_date
(含),timezone
和status
进行的活动。由于用户来自具有不同时区的所有地点,因此日期是墙上时间。将会有传入的事务,我想根据任务的状态检查这些事务的有效性。
如果任务的状态为active
,则该任务仍然有效。我打算做的是设置一个cron作业(或Rails中的activeJob)以每15分钟运行一次,以根据用户的timezone
设置检查任务是否已经开始或结束,并更新{{1 }}字段。
问题是,假设任务的status
是12月15日,并且cron作业恰好在12月16日00:00开始,此时任务应该已经过期,并且cron作业大约需要2分钟才能完成整个任务数据库。然后end_date
将在12月00:02左右的16更新为status
。如果在12月16日00:01发生事务,则应用程序将根据其inactive
(仍为status
)的有效性进行检查,但实际上已经超过了截止日期。
有什么办法解决这个问题吗?
顺便说一句,尽管应用程序本身并不很严重,并且可能会出现一些不匹配的情况,但我仍然担心查询时的数据完整性,因为某些数据点会超出有效日期范围。