【发布时间】:2016-10-13 05:59:39
【问题描述】:
我正在构建一个 REST 样式的后端 Web 服务,该服务将预先生成的数据块提供给前端站点。 Blob 本身并不大,可以在单个 HTTP 响应/请求中轻松满足。后端是用 PHP 编写的。
一切正常。困难在于blob再生,当有很多blob时需要相当长的时间。重新生成可能需要比(单独托管的)服务器上的响应超时更长的时间。
我想进行如下操作: – 发送的初始请求是“重新生成所有 blob” – 处理开始,直到所有都完成(HTTP 200,所有 hunky-dory)或我达到内部时间限制之前没有响应 – 如果达到时间限制,我想发送一个响应,表明处理不完整(哪个 HTTP 状态是合适的,因为处理成功,但不完整? – 206 不适用没有 Range 标头...),所以客户可以请求继续。我可以想象返回指示“请继续”请求应该是什么的数据(这最好在 Link 标头中完成吗?) – 然后客户端请求继续,循环继续,直到发出完全成功的信号。
在 HTTP 客户端-服务器交换中发出此类信号的最佳方式是什么?我准备写一小段 Javascript 来处理客户端循环。
感谢您的任何好主意!
【问题讨论】:
标签: http long-running-processes