有没有办法从其他服务器获取文件并将它们转储到数据库异步?

时间:2010-08-05 11:10:56

标签: php mysql asynchronous

我需要创建一个php脚本,它通过POST获取大量的URL,然后加载相应的文件并将它们转储到数据库中。问题是我想异步,所以如果我有1000个文件,脚本将不会挂起,直到所有文件都加载。此外,每次加载文件时,我都需要知道,以便我可以将其插入数据库

任何想法都表示赞赏。

2 个答案:

答案 0 :(得分:1)

将脚本分为两部分 - 首先是收集URL,第二部分是从后台运行的shell脚本,以便在数据库中插入URL并获取它们。

所以基本上这个过程如下:

SCRIPT1:

  • 获取POST
  • 插入数据库
  • 使用
  • 调用脚本2
  • shell_exec在后台运行

SCRIPT2:

  • 从urls_to_download
  • 获取所有网址
  • 获取URLS(因此或并行,取决于您)
  • 与他们合作
  • 将它们保存到数据库。

你完成了。 script1中的POST立即返回,然后脚本2正在运行。如果你想显示一些有关进展的信息,那么剩下的就是检查URL的状态(通过AJAX从数据库中进行轮询)。

答案 1 :(得分:0)

PHP不是多线程且完全同步的。所以你可能不会单独使用PHP。

但您可以使用其他语言来执行此任务,例如JavaScript(这是异步的)。试试node.js。它快速闪电并具有mysql绑定;)使用http.Client向站点发出请求。