在上傳csv文件,需要對文件里的一些數(shù)據(jù)做處理,便使用了異步隊列來處理。先創(chuàng)建了一個模型的監(jiān)聽,在數(shù)據(jù)保存后將分發(fā)任務(wù) public function saved(Import $import)
{
dispatch(new AsyncHandleImportData($import));
}每保存一條數(shù)據(jù),就有一個任務(wù)分發(fā)給隊列,數(shù)據(jù)處理后存儲在另外一個表(a)中。在任務(wù)的處理中,我需要傳遞過來的數(shù)據(jù)和a表里的數(shù)據(jù)比對,但是發(fā)現(xiàn)一個問題,任務(wù)像是并行的。例如我插入了2000條數(shù)據(jù),有2000個任務(wù)。在執(zhí)行后并沒有如我預(yù)期的,先執(zhí)行的任務(wù)數(shù)據(jù)已經(jīng)插入a表,后面執(zhí)行的任務(wù)獲取到a表里的數(shù)據(jù),進行對比,似乎是所有任務(wù)執(zhí)行時獲取的a表數(shù)據(jù)全部是空的。等于這些數(shù)據(jù)沒有經(jīng)過處理又全部插入a表了。 if($this->exist){ //預(yù)期中一些數(shù)據(jù)應(yīng)該走這里
}else{ //全部走這里
}
有大佬能解答一下么?
- 1 回答
- 0 關(guān)注
- 379 瀏覽
添加回答
舉報
0/150
提交
取消