1

我的网站要求用户每天23:59:59之前在网站上完成某项任务(不用担心时区或任务)

该任务有$today_status(completeincomplete)

我有一个在一天开始时(00:00:01)运行的 cron 来做两件事:

  1. 检查昨天是否完成了所有任务(检查所有仍未完成的任务)。
  2. 将所有昨天的任务重置为未完成,以便用户今天可以再次开始任务(新的一天)。

每个任务旁边都有一个倒计时计时器,以便用户可以看到以下两个计时器之一:

  1. ( IF $today_status = incomplete) - 他们完成任务所剩的时间(倒计时到一天结束)。
  2. ( IF $today_status = complete) - 他们在完成第二个任务之前必须等待的时间(倒计时到一天结束)。

我有两个相关的小问题:

cron 在 00:00:01 进入新的一天后立即运行,但是 cron 可能要到 00:07:19 才能完成所有任务的处理,因此存在 7 分钟的错误间隔......这可能会增加更多用户加入。

因此,如果用户已完成前一天的任务,然后在第二天 00:03:27 查看任务......$today_status仍然可能是completed因为 cron 可能还没有处理前一天的任务......计时器会说

23:54:33(开始下一个任务还剩等待时间)

它会说上面的,因为它仍然处于“完成”状态......但是用户只是提前登录,所以他们可以提前完成今天的任务但是网站告诉他们否则......它告诉他们他们必须等到明天完成下一个任务……

我希望我能正确解释这一点,如果您费心阅读本文,我将非常感谢您...任何帮助将不胜感激...在此先感谢

4

1 回答 1

0

我只能想到一个解决方法。由于 cron 将越来越慢,因此您可以添加一个“last_cron_date”字段,该字段将显示 cron 上次修复给定任务的时间。因此,在 UI 中,您将检查任务是否已通过 cron TODAY,如果是,则显示剩余的。如果 cron 还没有完成这个任务,它的日期字段仍然是昨天,你可以正确处理这个 - 要么说“这个任务当前正在处理”,要么允许它被处理,或者你决定为处理时间差距。

于 2012-12-06T15:58:30.820 回答