4

所以我正在开发一个需要与 4d 应用程序通信的 php 应用程序。4d 应用程序使用 SOAP Web 服务进行外部通信。

SOAP Web 服务具有启用文件上传到 4d 应用程序的功能。由于 4d 应用程序的 web 服务的文件上传功能的破坏性,我们实现了一个进度条来将文件上传到 web 服务器,然后在成功之后尝试将文件发送到 4d 应用程序服务器。但是对于客户端来说,这并不好,因为人们需要等待初始文件上传到服务器,然后在执行文件上传功能时再次将文件从 Web 服务器传输到 4d 应用程序的服务器。

我的问题是,有没有办法以非阻塞方式处理文件上传?甚至可能一起绕过 SOAP 功能。

更新:我在想也许可以使用 RabbitMQ 之类的东西来对每个文件上传项目进行排队,然后使用脚本或与应用程序分离的东西进行处理,这样它就不会阻塞应用程序。

4

1 回答 1

2

您建议的解决方案将是解决它的正确方法;使用 HTML5 文件上传或 swfupload 通过常规 Web 应用程序接受上传,以允许显示上传进度条,然后将其存储在本地并排队等待工作人员处理的 Gearman 或 RabbitMQ 任务。

工作人员将在本地获取文件并将其上传到远程服务(4d / SOAP),然后在完成后在数据库中设置适当的状态,以便用户知道文件何时被处理并添加到实际服务器。

于 2012-10-22T13:54:26.773 回答