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

webman 兩次請(qǐng)求,事務(wù)會(huì)互相影響

hooper55

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

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


問(wèn)題描述

先訪(fǎng)問(wèn)(開(kāi)啟事務(wù)):
/?transaction=1
再訪(fǎng)問(wèn)(不用事務(wù))
/

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

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

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

程序代碼或配置


    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');
    }
1693 2 0
2個(gè)回答

walkor 打賞

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

  • hooper55 2023-06-11

    大佬測(cè)試了嗎,現(xiàn)在就是多個(gè)請(qǐng)求會(huì)共用鏈接。

    忘了說(shuō)的是,只開(kāi)一個(gè)進(jìn)出

  • hooper55 2023-06-11

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

  • hooper55 2023-06-11

    實(shí)測(cè)下來(lái),不使用異步的代碼確實(shí)不會(huì)互相影響

Le

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

  • walkor 2023-06-12

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

  • Le 2023-06-12

    那就放心了...

  • hooper55 2023-06-13

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

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