2012-12-06 86 views
1

我的網站要求用戶23:59:59一天結束前完成網站每天的上一個特定的任務(不必擔心時區或任務)誤差小差距,但大

任務有一個$today_statuscompleteincomplete

我有一個運行在一天(00:00:01)開始一個cron做兩件事情:

  1. 檢查所有任務完成昨天(檢查對於所有尚未完成的任務)。
  2. 將所有昨天的任務重新設置爲不完整,以便用戶可以今天再次啓動任務(對於新的一天)。

每個任務都有旁邊顯示其一個倒計時器,使用戶可以看到以下兩個定時器之一:

  1. IF $today_status = incomplete) - 他們已經離開了完成任務的時間(倒計時到一天結束)。
  2. IF $today_status = complete) - 他們需要等待才能完成第二項任務(倒計時到一天結束)的時間。

我有2個是有關小問題:

的crons運行,只要它變成一個新的一天00:00:01但是沒有cron的可能處理完所有的任務,直到00 :07:19所以有7分鐘的錯誤差距......隨着更多用戶加入,這可能會增加。

因此,如果用戶已經完成了對前一天的任務,然後查看任務在0時03分27秒,第二天... $today_status仍可能completed作爲cron的可能不會處理它了前一天還......還有定時器會說

23時54分33秒 (時間左等右等,然後才能開始下一個任務)

它會說上面,因爲它仍然在'完整'狀態...但是用戶只是早點登錄,所以他們可以儘早完成今天的任務,但是該網站告訴他們,否則......它告訴他們,他們必須等到明天才能完成E中的下一個任務......

我希望我正確解釋這一點,太謝謝你了,如果你有耐心閱讀下來這麼遠...任何幫助將不勝感激...謝謝提前

+0

您可以添加第三個狀態「計算」,即爲cron開頭的所有任務設置的狀態。 – tmuguet

回答

0

我只能想到解決方法。 由於cron會越來越慢,那麼你可以添加一個「last_cron_date」字段,它會告訴你何時有cron上次修復給定的任務。因此,在UI中,您將檢查該任務是否已由cron TODAY傳遞,如果是,則顯示剩餘部分。如果cron還沒有完成這個任務,它的日期字段仍然是昨天,你可以正確處理 - 或者說「正在處理這個任務」,或者允許它被處理或者你決定爲處理時間差距。