0

PHPアプリケーションの一部で、RESTスタイルのAPI呼び出しを行い、作業を続ける必要があります。API呼び出しの結果は気にしません(したがって、戻り値を確認する必要はありません)が、それを起動して作業を続行できる必要があります。

これを行うために使用する場合file_get_contents()、URLが返されるまで待機します。CURLでタイムアウトを設定できますが、許可される最小のタイムアウトは1秒であるため、これはあまり役に立ちません。CURLで他のオプションを探しましたが、まだ何も見つかりません。

ヒットしているAPIのこの部分を書いたので、現在はすぐに戻ってそのコードで作業を続けていますが、将来、他の外部APIと通信する場合は、これとそれを行う方法を知る必要がありますスクリプトを引き続き機能させるために、外部コードに依存しない方がよいようです。URLをリクエストして何が返ってくるかを気にしないのはおそらく普通ではありませんが、これが私に必要なことです。誰もが方法を知っていますか?

4

4 に答える 4

4

を使用しcurl_multi_exec()、応答ヘッダーが返されたら接続を切断します。

これは、コンテンツの処理が開始される前に応答ヘッダーが送信され、切断してもリモートスクリプトが実行され続けることを前提としています。

于 2012-06-20T05:40:56.143 に答える
2

APIへの呼び出しをバックグラウンドジョブに移動することを検討することをお勧めします。

php resque、https: //github.com/chrisboulton/php-resqueを検討することをお勧めします

または、dbテーブルとcronジョブを使用して独自のロールを作成します。

于 2012-06-20T05:41:09.810 に答える
0

クライアント側から試すことができれば、これが役立つかもしれません!

function loadNow()
{
    $.load('cURL URL');
}
setInterval('loadNow()', 500);

お役に立てれば!:)

于 2012-06-20T05:40:34.207 に答える
0

出力がHTMLの場合は、呼び出しをiframeに移動することを検討してください。

于 2013-05-23T06:25:38.363 に答える