我正在使用PHP exec()执行-convert Image Magick命令,并且我想转换多个页面。 考虑到这可能需要几分钟时间,我需要某种进度条来监控转换过程。 有什么好的建议可以解决这个问题吗?
虽然你不能真正追踪单个转换的进度,但在想要批量转换文档时,可以尝试以下方法: 页面数 = 100% 当前页码 / 页面数 * 100 = 进度百分比 所以,在每处理一页后,你可以更新进度。你可以将信息写入文件或数据库(针对多用户软件连接到用户会话),并通过向读取此文件/数据库的php脚本发送ajax请求来轮询状态。
解决这个问题的方法是使用消息队列。我分叉了一个代码示例,展示如何使用Pheanstalkd(一个用于beanstalkd的PHP框架),在这里。这个示例展示了如何有一个发送者将作业放入队列,工作者从队列中拉取作业,以及一个监视器来监视作业(这部分基本上做了你所要求的)。您可以从这里下载Pheanstalk。