SOAP リクエストをリモート サーバーに呼び出す PHP コードがあります。リモート サーバーが SOAP 要求を処理し、結果を取得できます。
理想的には、SAOP リクエストを呼び出し、5 秒待ってから、結果を探しに行きたいと思います。その理由は、リモート サーバーが処理を完了するのに数秒かかるためです。リモートサーバーを制御できません。
現在、私はこのコードを持っています:
$object = new Resource_Object();
$identifier = $_GET['id'];
$object->sendBatch($id));
sleep(5);
$results = $object->getBatchReport();
echo $results;
上記のコードの問題は、sendBatch が完了するまでに数秒かかることです。sleep(5)を追加した後、ページの読み込みに 5 秒長くかかりますが、それでも結果は表示されません。ページを再度読み込むか、別のページからgetBatchReport()を呼び出すと、結果が表示されます。
これは、ページ全体を一度に実行する HTML のステートレス性と関係があると思います。「出力バッファリング」の使用を検討しましたが、出力バッファリングの目的がよくわかりません。
jQuery と Ajax を使用して getBatchReport() を継続的にポーリングすることも検討していましたが、問題は、このページを別の場所から呼び出す必要があり、sendBatch()が大きくなると 5 秒の遅延が発生し、おそらく約 2 分になる可能性があることです。このページをリモートで呼び出すと、Ajax が機能しないと思います (このページは /dev/null 2>&1 &によって生成されたバックグラウンドで既に呼び出されています )。
sendBatch ルーチンで指定されたリモート サーバーを制御することはできません。私が知る限り、コールバック関数はありません。CRON を使用しないことをお勧めします。これは、リモート サーバーに常にクエリを実行する必要があることを意味するからです。
何か案は?