小错误差距但大

时间:2012-12-06 15:52:30

标签: php

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

该任务有$today_statuscompleteincomplete

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

  1. 检查昨天是否所有任务都已完成(检查所有仍未完成的任务)。
  2. 将所有昨天的任务重置为不完整,以便用户今天可以再次启动任务(新的一天)。
  3. 每个任务旁边都显示一个倒计时器,以便用户可以看到以下两个计时器之一:

    1. IF $today_status = incomplete) - 他们离开完成任务的时间(倒数到当天结束)。
    2. IF $today_status = complete) - 他们必须等待才能完成第二项任务(倒数到当天结束)。
    3. 我有两个相关的小问题:

      crons一旦在00:00:01变成新的一天就会运行但是cron没有完成所有任务的处理,直到00:07:19所以有7分钟的错误差距......这个随着更多用户加入,可能会增加。

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

      23时54分33秒 (等待你开始下一个任务之前的剩余时间)

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

      我希望我能正确地解释这一点并非常感谢你,如果你有兴趣读到这一点......任何帮助将不胜感激...提前感谢

1 个答案:

答案 0 :(得分:0)

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