【Yar】Yar非同期呼び出しのタイムアウト時間の問題と解決策
に質問
特定のビジネス機能の必要性のため、パラレル非同期方式でメソッドを呼び出す必要があります.
しかし、業務上、呼び出すメソッド毎の実行時間は最大60秒と要求され、これにより、Yarを用いた呼び出しは常にtimeoutとなる.
Yar_Concurrent_Client::loop(): select timeout 5000ms reached
ソリューション
1.プロファイルの変更
Yar拡張の構成項目は次のとおりです. yar.packager php yar.debug yar.connect_timeout yar.timeout yar.expose_info
したがって、
2.メソッドパラメータの設定
実際にこの方法は事例コードに存在する.
Yar_Concurrent_Client::call(“http://host/api/“, “some_method”, array(“parameters”), “callback”, NULL, array(YAR_OPT_TIMEOUT=>1));
ここで5番目のパラメータを配置する、
私がここで出会った問題はcallback関数がずっと見つからないので、最初の方法を採用しています.
資料を参観する. http://php.net/manual/zh/yar-concurrent-client.call.php http://www.laruence.com/2012/09/15/2779.html Laruence本人
特定のビジネス機能の必要性のため、パラレル非同期方式でメソッドを呼び出す必要があります.
しかし、業務上、呼び出すメソッド毎の実行時間は最大60秒と要求され、これにより、Yarを用いた呼び出しは常にtimeoutとなる.
Yar_Concurrent_Client::loop(): select timeout 5000ms reached
ソリューション
1.プロファイルの変更
Yar拡張の構成項目は次のとおりです.
したがって、
ini_set()
の方法でphpを実現する.iniの動的修正は、yar.timeout
の修正を実現し、タイムアウト時間の構成問題を完了する.ini_set("yar.timeout",60000);
2.メソッドパラメータの設定
実際にこの方法は事例コードに存在する.
Yar_Concurrent_Client::call(“http://host/api/“, “some_method”, array(“parameters”), “callback”, NULL, array(YAR_OPT_TIMEOUT=>1));
ここで5番目のパラメータを配置する、
YAR_OPT_TIMEOUT
を設定する.私がここで出会った問題はcallback関数がずっと見つからないので、最初の方法を採用しています.
資料を参観する.