サーバー上にスケジュールされた実行プログラムを設定しますか?
それとも、このページにアクセスするたびに期限が切れた後に変更する必要がありますか?
サーバー上にスケジュールされた実行プログラムを設定しますか?
それとも、このページにアクセスするたびに期限が切れた後に変更する必要がありますか?
このような問題については、注文を作成するときに有効期限を記録する方が良いと思います。そうすれば、注文を読み取るときにタイムスタンプを判断するだけで済みます。期間の目的が達成されたかどうか、現在のステータスが継続して動作できるかどうかを確認する。スケジュールされたタスクなどは、PHP をどのように効率的に使用するかについては話しません。システムレベルではありますが、途中でプログラム異常が発生するリスクはそれほど深刻ではありません。また、注文量が多い場合、サーバーの負荷も非常に高くなります
。
あなたの論理によれば、やはりスケジュールされたスクリプトを使用する必要があります。そうしないと、アクセスするたびにスクリプトを変更することになり、効率が低くなります。
Linuxシステムのスケジュールされたタスクを使用できるため、ループする必要はありません
ブラウザ側で WebSocket を使用しない場合は、アクセス時に有効期限が切れるかどうかだけを処理できます
WebSocket を使用する場合は、cron を使用して正直に実行します~
特定のビジネス シナリオの要件によって異なります
15分以内に支払いがない場合に注文をキャンセルするのと同様の機能について話していますか?やったことがないので感想しか言えません。注文を生成するとき、PHP はシステム関数を呼び出して、15 分で実行されるタスクを作成します。タスク ステートメントは php -f checkOrderStatus.php -id 323003
checkOrderStatus.php など、システムを使用して動的に生成されます。このスケジュールされたタスクを削除する機能(1回限りのスケジュールされたタスクがある場合は、わざわざ行う必要はありません。実際にはLinuxを理解していないので、使用するときに情報を検索するだけです。)
@accyl が言及した負荷の問題については、この関数は Web サービスを使用しないため、注文がこれに対応できる場合、このファイルの実行は注文を作成するよりもはるかに低コストになるはずなので、あまり心配する必要はありません。問題ありません。