使用Javascript执行进程并向Web服务器发送更新/回调


Using Javascript to perform a process and send updates/callbacks to a webserver

我正在开发一个流程,允许人们通过基于web的界面上传PDF文件并管理文档(页面顺序)。

PDF文件的页面需要裁剪到特定的大小才能打印,目前我们通过Photoshop操作来处理这些页面。

我想做的是将PDF文件上传到一个专用服务器,以执行所需的过程(photoshop操作、转换、将图像发送回网络服务器)。

执行这些功能的一些好方法是什么,但向Web服务器发送更新以允许进程跟踪/进度条,让用户了解他们的文件需要多长时间才能处理。

此外,一般来说,有哪些好的排队/跟踪作业/流程的技术(重点是基于web的技术)?

Derek,我相信你使用Photoshop是有原因的,但说真的,Imagemagick渲染对你来说不够吗?我曾经使用过传真实用程序,该实用程序将fax.g3文件转换为TIFF,然后使用Imagemagik将对比度和亮度提高15%,并将其转换回PDF。IM作为system()调用的独立Linux程序工作,我知道有新的ImagemagickPECL扩展。

创建一个队列,并将作业推送到该队列。运行cronjob或守护进程,从队列中获取作业并对其进行处理。请确保使用某种锁定,以便安全地停止/启动守护程序/作业。

如果你希望工作能很快完成,你可以使用一种被称为"彗星"的技术。基本上,您可以建立从javascript(使用XmlHttpRequest)到服务器端脚本的连接。在此脚本中,您将检查作业是否已完成。如果没有,你可以睡一两秒钟,然后再检查一下。你一直这样做,直到工作完成。然后你回复。结果是,请求需要一段时间才能完成,但会立即返回。然后,您可以在javascript中采取适当的操作(重新加载页面或其他任何操作)。