后臺(tái)添加數(shù)據(jù),表單會(huì)一次提交多條數(shù)據(jù)或一條數(shù)據(jù),后臺(tái)插入數(shù)據(jù)庫后會(huì)將每條數(shù)據(jù)id提交到消息列隊(duì)》給每條數(shù)據(jù)生成word》在將word轉(zhuǎn)pdf
消息列隊(duì)干的事:
給每條數(shù)據(jù)生成一個(gè)word》用命令執(zhí)行l(wèi)ibreoffice將word轉(zhuǎn)pdf
問題:
表單只添加一條數(shù)據(jù)的時(shí)候就沒得問題,pdf也能成功
當(dāng)表單添加條數(shù)據(jù)的時(shí)候,消息列隊(duì)就跑得很快,而libreoffice又有點(diǎn)耗時(shí),就好像同時(shí)有多個(gè)libreoffice命令在執(zhí)行一樣,前面步驟中生成word都正常,就最后一步轉(zhuǎn)pdf執(zhí)行l(wèi)ibreoffice命令的時(shí)候就失敗了,始終只會(huì)轉(zhuǎn)成功一個(gè)pdf,這種情況的時(shí)候不會(huì)報(bào)錯(cuò)任何異常都沒有
控制消息列隊(duì)執(zhí)行速度,或如何控制消息列隊(duì)同一時(shí)間只能執(zhí)行一條,像定時(shí)任務(wù)一樣必須等我執(zhí)行完了才能消費(fèi)下一條數(shù)據(jù)
1.可以把這個(gè)數(shù)組一次性丟到隊(duì)列,然后循環(huán)執(zhí)行;比如批量了3條,那么3條同時(shí)丟到隊(duì)列,消費(fèi)隊(duì)列的代碼要寫成循環(huán)執(zhí)行的
2.可以設(shè)置當(dāng)前隊(duì)列任務(wù)為單進(jìn)程;需要把隊(duì)列獨(dú)立出來,進(jìn)程數(shù)量改為1