后台添加数据,表单会一次提交多条数据或一条数据,后台插入数据库后会将每条数据id提交到消息列队》给每条数据生成word》在将word转pdf
消息列队干的事:
给每条数据生成一个word》用命令执行libreoffice将word转pdf
问题:
表单只添加一条数据的时候就没得问题,pdf也能成功
当表单添加条数据的时候,消息列队就跑得很快,而libreoffice又有点耗时,就好像同时有多个libreoffice命令在执行一样,前面步骤中生成word都正常,就最后一步转pdf执行libreoffice命令的时候就失败了,始终只会转成功一个pdf,这种情况的时候不会报错任何异常都没有
控制消息列队执行速度,或如何控制消息列队同一时间只能执行一条,像定时任务一样必须等我执行完了才能消费下一条数据
1.可以把这个数组一次性丢到队列,然后循环执行;比如批量了3条,那么3条同时丢到队列,消费队列的代码要写成循环执行的
2.可以设置当前队列任务为单进程;需要把队列独立出来,进程数量改为1
libreoffice 是单线程的。每次只能执行一个,不是多线程的