这是一个关于如何制作一个 Web 应用程序的通用设计问题,该应用程序将接收大量上传的数据、对其进行处理并返回结果,所有这些都不会出现可怕的 5 分钟旋转沙滩球或可能的 HTTP 超时。
以下是要求:
- 制作一个 Web 表单,您可以在其中上传包含 URL 列表的 CSV 文件
- 当用户单击“提交”时,服务器获取文件,并检查每个 URL 以查看其是否有效,以及页面的标题标签是什么。
- 结果是一个包含 URL 的可下载 CSV 文件,以及结果 HTTP 代码
- 输入 CSV 可能非常大(> 100000 行),因此提取过程可能需要 5-30 分钟。
到目前为止,我的解决方案是在客户端站点上有一个旋转的 javascript 循环,它每秒查询一次服务器以确定工作的整体进度。这对我来说似乎很笨拙,我不愿接受这是最好的解决方案。
我正在使用 perl、模板工具包和 jquery,但任何使用任何 Web 技术的解决方案都是可以接受的。
编辑: 一个可能的解决方案的例子是这个问题:如何实现基本的“长轮询”?