私のサイトでは、ユーザーが毎日 23:59:59 の終わりまでにサイトで特定のタスクを完了する必要があります (タイムゾーンやタスクについて心配する必要はありません)。
タスクに$today_status
(complete
またはincomplete
)がある
2 つのことを行うために、1 日の開始時 (00:00:01) に実行される cron があります。
- すべてのタスクが昨日完了したかどうかを確認します (まだ完了していないすべてのタスクを確認します)。
- 昨日のタスクをすべてリセットして未完了に戻し、ユーザーが今日 (新しい日に) タスクを再開できるようにします。
各タスクの横にはカウントダウン タイマーが表示されるので、ユーザーは次の 2 つのタイマーのいずれかを確認できます。
- (
IF $today_status = incomplete
) - タスクを完了するための残り時間 (1 日の終わりまでのカウントダウン)。 - (
IF $today_status = complete
) - 2 番目のタスクを完了するまでに待機する必要がある時間 (1 日の終わりまでのカウントダウン)。
関連する2つの小さな問題があります。
cron は 00:00:01 に新しい日になるとすぐに実行されますが、cron は 00:07:19 まですべてのタスクの処理を終了しない可能性があるため、7 分のエラー ギャップがあります...これは次のように増加する可能性がありますより多くのユーザーが参加します。
そのため、ユーザーが前日のタスクを完了し、翌日の 00:03:27 にタスクを表示した場合... cron が前日のタスクを$today_status
まだcompleted
処理していない可能性があるため、まだ可能性があります...そして、タイマーのためにそこに言うでしょう
23:54:33 (次のタスクを開始するまでの残り時間)
まだ「完了」ステータスであるため、上記のように表示されます...しかし、ユーザーは早くログインしたので、今日のタスクを早く完了することができましたが、サイトはそうではないと言っています...明日、次のタスクを完了するために...
これを正しく説明していることを願っています。ここまで読んでくれてありがとうございます...どんな助けでも大歓迎です...事前に感謝します