vBulletinなどのスクリプトはどのようにしてcronジョブなしで定期的なメンテナンスジョブを起動しますか?たとえば、vBulletinはスレッドビュー数をリアルタイムで更新せず、ドキュメントによると1時間ごとにのみ更新します。ただし、これを行うためにcronジョブを使用しないので、どのように実行しますか?
私のサイトの1つで同様のことをしたいのですが、彼らがこの魔法をどのように行うのかわからないので、私は尋ねます。
vBulletinなどのスクリプトはどのようにしてcronジョブなしで定期的なメンテナンスジョブを起動しますか?たとえば、vBulletinはスレッドビュー数をリアルタイムで更新せず、ドキュメントによると1時間ごとにのみ更新します。ただし、これを行うためにcronジョブを使用しないので、どのように実行しますか?
私のサイトの1つで同様のことをしたいのですが、彼らがこの魔法をどのように行うのかわからないので、私は尋ねます。
ページの読み込みとタイムスタンプを使用していると思います。つまり、フォーラムがページビューを受信するたびに、現在の時刻を次にスケジュールされているジョブの時刻と照合します。現在の時刻が>=
スケジュールされた時刻の場合、ジョブが実行されます。
もちろん、これの欠点は、フォーラムが多くのページビューを取得しない場合、特定の時間にジョブが実行されることを保証できないことです。精度は、フォーラムでのアクティビティに直接関係しています。
@Mitzimotoは正しいです。https://www.vbulletin.com/docs/html/scheduled_tasks_intro
vBulletinのスケジュールされたタスクシステムは、Windows®のcronやスケジュールされたタスクのようにサーバー上で常に実行されるわけではありません。ユーザーがボードを閲覧するとタスクが自動的に実行されるため、特定の時間にボードにトラフィックがない場合、実行するようにスケジュールされたタスクは後で実行されます。ボードがオフになっている場合、vBulletinのスケジュールされたタスクも実行されません。