国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

緊急:webman如果實(shí)現(xiàn)同時(shí)并發(fā)訪問多個(gè)第三方接口

webman_fans

如題,使用curl_multi 可以實(shí)現(xiàn),不過有人為指定耗時(shí)。

業(yè)務(wù)需要同時(shí)請求多個(gè)第三方,看誰先返回。然后判斷結(jié)果,如果不正確,再等待第二快返回的,直到結(jié)果正確。

然后,處理接下來的業(yè)務(wù)。

2952 2 1
2個(gè)回答

walkor 打賞

推薦 curl_multi

  • webman_fans 2022-02-22

    大佬,除了 curl_multi,還有其他方法可以顯示這種業(yè)務(wù)需求嗎; 同行都是 golang 的 協(xié)程實(shí)現(xiàn)的。php目前好像還不行。如何實(shí)現(xiàn)?在線等。

  • webman_fans 2022-02-22

    另外,還有一個(gè)問題,curl_multi,會人為顯示的設(shè)置usleep。 而業(yè)務(wù)需要及時(shí)返回的。否則就會超時(shí),下游有200毫秒的超時(shí),限制?,F(xiàn)在有大量的超時(shí)數(shù)據(jù)。

  • webman_fans 2022-02-22

    1 最好的結(jié)果就是,用php 本身的語言特性實(shí)現(xiàn);
    2 用webman的自身機(jī)制,實(shí)現(xiàn)這個(gè)需求。應(yīng)該如何實(shí)現(xiàn)?不確定webman 框架能否實(shí)現(xiàn)? workerman 能否實(shí)現(xiàn)。好像 swool 可以實(shí)現(xiàn),

    3 如果swool 可以實(shí)現(xiàn),那就在webman中引入swool來達(dá)到目的,應(yīng)該如果做?

    4 比較緊急。

  • walkor 2022-02-22

    用 curl_multi 是最簡單的方案

  • six 2022-02-22

    curl_multi 不用設(shè)置usleep

  • yzh52521 2022-02-22

    GuzzleHttp 這個(gè)類庫有并發(fā)請求

  • webman_fans 2022-02-22

    好的,試試

six
<?php
$urls = array(
   "http://lxr.php.net/",
   "http://www.php.net/",
);
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
    $conn[$i] = curl_init($url);
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $conn[$i]);
}

do {
    $status = curl_multi_exec($mh, $active);
    $info = curl_multi_info_read($mh);
    if (false !== $info) {
       $result = curl_multi_getcontent($info['handle']);
       // 這里獲得每個(gè)cul的結(jié)果,如果結(jié)果是想要的就返回,不是就等下一個(gè)結(jié)果
       echo $result;
       //return $result;
    }
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);

foreach ($urls as $i => $url) {
    curl_close($conn[$i]);
}

這個(gè)是并發(fā)執(zhí)行的,哪個(gè)結(jié)果先返回就用哪個(gè)

年代過于久遠(yuǎn),無法發(fā)表回答
??