そのため、xml 投稿で攻撃される PHP スクリプトを備えたサーバーがあります。各xmlには1ブロックのデータまたは複数のデータブロックが含まれる可能性があり、私に投稿しているサーバーには約10秒の可変タイムアウトがあるため、スクリプトは約10秒でサーバーに情報を取得したことを伝えます(http:200/pageロードが完了していない場合) またはシステムをループにダイブする投稿を再試行します。このxmlが原因で送信される電子メールや通話などはできるだけ早く送信する必要があるため、私のターンアラウンドタイムはほぼ瞬時である必要があります.
私は次のことを考えました: xml を txt ファイルにダンプし、DB にログを記録します。したがって、ファイルは常に 10 秒以内に xml ポスターに応答します。次に、バックグラウンドでファイルを処理するジョブを作成します。誰かが別のスレッドでこれを行うことを提案しました:
#!/bin/bash
while [ "true" ]; do
/path/to/script.php
sleep 3
done
私の問題は、40 個の大きなバッチ ジョブと 20 個の小さなバッチ ジョブを取得した場合、1 分間で 30 個の script.php インスタンスを実行できることです。バッチ スクリプトを実行し、完了したら次のバッチ スクリプトを起動し、メモリの問題を発生させないようにしたいと考えています。
したがって、次のようにする方がよいでしょう。
processor.php:
<?php
select next record sort by date desc
grab file, process it
header location to same script
?>
レコードがない場合はスリープ 3 になる可能性があるため、ページは常に実行されています。しかし、これは男性の問題を引き起こしますか、それともヘッダーの場所をそれ自体にすると、メモリがリセットされますか?
助言がありますか?