奇妙な問題があります。Web サーバーでのみ実行される php スクリプトがあり、新しい処理ジョブがデータベースに配置されるとすぐに大量のデータを処理します。処理には約 1 ~ 5 分かかります。
私がしたことは、データベースに未完了のジョブがあるかどうかを確認する php スクリプトを実行することでした。このページは、次の html ヘッダーを使用して 5 秒ごとに更新されます。
<meta http-equiv="refresh" content="5">
サーバーはこのスクリプトを実行するだけなので、自動的に取得されます。問題は、サーバーがビジー状態のときに、内部エラー 500 がスローされることがあることです。これは、ページの読み込みが停止し、更新されなくなったことを意味します (数秒後に再び使用可能になりますが)。
どうすればこの問題を最もよく解決できますか? 私は Ajax のポーリング システムでそれを行うことを検討しました。問題は、処理ジョブに数分かかることです。また、複数の処理ジョブが同時に発生した場合、すべての処理が同時に開始されます。私たちは望んでいません。また、Ajax が再び更新を開始したときにページの読み込みが停止し、スクリプトが終了しないかどうかさえわかりません。
データベースに新しいジョブが作成されたときに PHP スクリプトを実行する別の方法があれば、それも知りたいです。