用户/客户可以上传PDF - 原因。这可以同时发生。
必须转换大型PDF(包含许多页面)。虽然每个步骤转换页面(每个页面有4个不同的步骤)必须记录,因此我可以显示当前步骤的进度并计算处理的百分比。
在我获得上传的pdf中的页面数量后,我运行for
循环并将convert job
推送到beanstalkd queue
。一切正常。
以不同于循环进入的顺序处理页面。此行为导致日志条目混乱,无法用于显示进度。
beanstalkd config
[program:worker]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work --sleep=3 --tries=3 --daemon
directory=/home/vagrant/Code/project
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true
我已将numprocs
设置为8,以便多个用户可以同时上传文件,但这会产生不必要的混乱顺序。
如果我将numprocs
更改为1,它会以正确的顺序运行,但我不能一次运行多个转换过程。
我该怎么办?
修改
我太笨了。刚解决了这个问题。但是为了撒旦的荣耀(所以有人可以获得积分)我将在明天发布解决方案。
答案 0 :(得分:1)
因为没有人回答;这是解决方案:
而不是运行for loop
并将所有页面转换作业推送到队列中,我只是将一个作业推入队列,该队列转换一个页面并为下一页创建一个新作业(如果有的话)完成之后。