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

多次請求同一個路由會出現(xiàn)資源定位錯誤

半打真心

問題描述

多次請求同一個路由偶爾會出現(xiàn)定位到別的路由接口,比如我請求/user/state接口,偶爾會給我返回/novel/catalogues或者其它接口的內(nèi)容

最近我有在控制器使用如下的自定義函數(shù),希望達(dá)到接口先返回數(shù)據(jù),然后控制器繼續(xù)執(zhí)行不需要返回數(shù)據(jù)的邏輯部分,我猜這么做會造成如上的問題

程序代碼或配置

if (!function_exists('resDefer')) {
    function resDefer($response, ?\Closure $callback = NULL) {
        if (is_array($response)) $response = \app\struct\Response::build($response);

        if (!($response instanceof \app\struct\Response)) {
            throw new JsonException(Http::PARAMETER_ERROR_MSG, Http::PARAMETER_ERROR_CODE);
        }

        $content = Http::json($response->code, $response->message, $response->data);

        // 這么做可能有問題
        \request()->connection->send($content->withHeaders($response->headers));

        if ($callback) $callback();

        return $content;
    }
}

重現(xiàn)問題的步驟

如題描述

788 3 1
3個回答

釋永戰(zhàn)

看看是不是哪里動態(tài)修改了路由····

  • 半打真心 2024-03-14

    沒有動態(tài)修改路由,我在本地以及測試服一直測不出這個情況,在我們正式服測出來了,大概十來次會出現(xiàn)一次

  • 半打真心 2024-03-14

    大佬,我的問題描述改了,幫忙看看是不是那個問題。。。

devkeep

我也遇到這個了,返回錯亂,好急

  • devkeep 2024-04-05

    估計不是路由問題,感覺像是控制器或者響應(yīng)無法被回收,再次被使用

  • 半打真心 2024-04-07

    我的確定是\request()->connection->send的問題,應(yīng)該就是這個方法造成的$request回收的問題

six

造成這個問題的原因很簡單,因為你一個請求返回了兩次響應(yīng)。
connection->send 發(fā)送了一次響應(yīng) A。
return $content時又發(fā)送了一次響應(yīng) B。

http客戶端都是一次請求獲取一個響應(yīng),客戶端請求第一次拿到響應(yīng)A,下次再請求拿到的大概率是B,所以錯亂。

如果你想異步執(zhí)行個任務(wù),直接定時器就好了。

 function resDefer($response, ?\Closure $callback = NULL) {
        if (is_array($response)) $response = \app\struct\Response::build($response);

        if (!($response instanceof \app\struct\Response)) {
            throw new JsonException(Http::PARAMETER_ERROR_MSG, Http::PARAMETER_ERROR_CODE);
        }

        $content = Http::json($response->code, $response->message, $response->data);

        Timer::add(0.000001, $callback, null, false);

        return $content;
    }
  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??