【问题标题】:Telling the browser I'm done, but continue loading data告诉浏览器我完成了,但继续加载数据
【发布时间】:2010-07-19 23:48:54
【问题描述】:

我有一个通过 Flash 访问的 php api。它为 Flash 抓取一些内容,然后做一些簿记。问题是,簿记可能需要几秒钟的时间,并且在 Flash 应用程序从中加载所有内容之前,可以以相同的方式访问 php api 10-500 次。

感觉我正在使用 flash 来访问它,AJAX 不是一个选项。我希望能够告诉 Flash URL Loader 页面在簿记之前已完成加载,但我仍然需要进行簿记。如何做到这一点?或者可以吗?

【问题讨论】:

标签: php flash http


【解决方案1】:

这听起来像是您想使用后台处理来完成繁重工作的情况。即使您可以完成将请求发送到浏览器,如果您继续进行更多处理,您将占用无法为另一个请求提供服务的 php 线程。如果你有几个请求进来,你很快就会在“簿记”这一步遇到瓶颈。

有一个将数据推送到队列中的队列,并有一个后台进程使用队列中的项目,依次处理每个项目。通过这种方式,您可以快速处理对服务器的请求,并将处理推迟到以后处理。

对于队列系统,您可以使用 rabbitmq 之类的东西,或者其他一些更简单的队列机制(可能是 DB 表)。处理这种离线处理的方法可能有上千种。

主要是推迟处理任何需要一段时间并可以等待稍后处理的内容。

【讨论】:

  • 使用 exec 通过命令行执行 wget 是个好主意吗?
  • 改变主意,按照你的想法,我想我会写一个 perl 脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 2012-05-21
  • 2019-07-15
  • 1970-01-01
  • 2015-08-28
  • 2012-12-12
相关资源
最近更新 更多