求助消息列队执行libreoffice命令只有一条数据成功

邹意

问题描述

后台添加数据,表单会一次提交多条数据或一条数据,后台插入数据库后会将每条数据id提交到消息列队》给每条数据生成word》在将word转pdf

消息列队干的事:
给每条数据生成一个word》用命令执行libreoffice将word转pdf

问题:
表单只添加一条数据的时候就没得问题,pdf也能成功
当表单添加条数据的时候,消息列队就跑得很快,而libreoffice又有点耗时,就好像同时有多个libreoffice命令在执行一样,前面步骤中生成word都正常,就最后一步转pdf执行libreoffice命令的时候就失败了,始终只会转成功一个pdf,这种情况的时候不会报错任何异常都没有

想到的解决办法

控制消息列队执行速度,或如何控制消息列队同一时间只能执行一条,像定时任务一样必须等我执行完了才能消费下一条数据

前端提交

截图

后端列队列表代码

截图

160 2 0
2个回答

rbb

1.可以把这个数组一次性丢到队列,然后循环执行;比如批量了3条,那么3条同时丢到队列,消费队列的代码要写成循环执行的
2.可以设置当前队列任务为单进程;需要把队列独立出来,进程数量改为1

  • 暂无评论
故人重来

libreoffice 是单线程的。每次只能执行一个,不是多线程的

  • 暂无评论
×
🔝