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

webman 兩次請求,事務(wù)會互相影響

hooper55

結(jié)論是不使用異步代碼就不會互相影響

結(jié)論是不使用異步代碼就不會互相影響


問題描述

先訪問(開啟事務(wù)):
/?transaction=1
再訪問(不用事務(wù))
/

結(jié)果是數(shù)據(jù)不會被寫入。

因?yàn)閮纱握埱?,用的connection是同一個,所以會互相影響,數(shù)據(jù)庫連接應(yīng)該 每個請求獨(dú)立分開。

雖然我用的是timer計時器,但是在高并發(fā)且有大量非阻塞行為的時候,還是有可能觸發(fā)一樣的問題。

程序代碼或配置


    public function index(Request $request)
    {
        $connection = Db::connection('default');
        if ($request->get('transaction')) {

 ? ? ? ? ?  $connection->beginTransaction();

            \Workerman\Timer::add(5, function () use ($connection) {
                $connection->rollback();
                echo "rollback\r\n";
            }, [], false);
        } else {
            $connection->table('application')->insert([[
                'id' => mt_rand(100, 99999),
                'author_id' => '11',
                'maintainer_id' => '11',
                'title' => 'notransaction',
                'web' => 'notransaction',
                'slogan' => 'notransaction',
            ]]);
        }
        return response('hello webman');
    }
1666 2 0
2個回答

walkor 打賞

webman常駐內(nèi)存的,數(shù)據(jù)庫連接是每個請求公用的。每個請求應(yīng)該獨(dú)自完成事物的提交或者回滾

  • hooper55 2023-06-11

    大佬測試了嗎,現(xiàn)在就是多個請求會共用鏈接。

    忘了說的是,只開一個進(jìn)出

  • hooper55 2023-06-11

    我晚點(diǎn)試試不用timer 會不會出現(xiàn)

  • hooper55 2023-06-11

    實(shí)測下來,不使用異步的代碼確實(shí)不會互相影響

Le

如果異步會影響,那隊(duì)列這種,也會影響?

  • walkor 2023-06-12

    隊(duì)列是另外的進(jìn)程了,根本影響不到。

  • Le 2023-06-12

    那就放心了...

  • hooper55 2023-06-13

    隊(duì)列不影響。如果是異步回調(diào)里才做commit 或rollback會有影響

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