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