[請益] 關於laravel資料庫query非同步問題消失

看板PHP作者時間8年前 (2017/09/16 15:05), 8年前編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
想請問一下各位, 我目前是使用 larvavel 5.2 跑 task job 也就是排程的部分, 但發現一個很奇怪的問題, 就是為什麼我的sql執行會變成非同步, 舉例來說 <?php Use Illuminate\Support\Facades\DB; DB::beginTransaction(); DB::delete(DB::raw($delete_sql)); DB::commit(); for ($i = 0; $i <=2 ; $i++) { DB::insert(DB::raw($insert_sql)); } php是單執行緒的程式, 但執行這個task會發生insert完資料, 再跑delete, 導致table是被清空的 請問是要調整什麼參數來設定db query同步與非同步嗎 有大大知道嗎, 謝謝 但我手動補跑task 又會正常 php artisan tt:test ---------------------- 後續處理 ------------------- 我在 crontab 移除 laravel 的 php artisn run:schedule; 改成 * * * * * php artisan tt:test 問題就被解決了, 懷疑 laravel 本身 task job 是異步處理 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.189.28.227 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1505545522.A.BAE.html

09/16 16:51, , 1F
你有測試insert是成功的?
09/16 16:51, 1F

09/16 16:56, , 2F
有喔, 不是每次table都會被清空
09/16 16:56, 2F

09/16 16:57, , 3F
有時被清空 有時是有資料 所以我覺得很怪
09/16 16:57, 3F

09/18 11:20, , 4F
如果你要保證行為的順序,包transaction吧
09/18 11:20, 4F

09/18 23:58, , 5F
我有用transaction了 我修正了 還是不行
09/18 23:58, 5F
※ 編輯: herbacin (111.248.204.207), 09/18/2017 23:59:52 ※ 編輯: herbacin (111.248.204.207), 09/19/2017 00:02:34
文章代碼(AID): #1PlCqokk (PHP)