受控数据库插入

时间:2015-05-28 09:19:51

标签: php mysql pdo

我创建了一个脚本,它使用PDO数据库函数从外部源中提取数据并将其插入到数据库中,有些日子可能会有数百个条目。页面会挂起,直到完成并且没有真正的控制它,如果有错误我不知道它,直到页面加载。

有没有办法让一个受控制的插入物,以便插入X量,然后暂停几秒钟然后继续直到它完成?

在插入过程中,它还会执行其他查询,因此可能会非常繁重。

我不太确定我在寻找什么,所以一直在努力寻求谷歌的帮助。

1 个答案:

答案 0 :(得分:0)

我建议您使用后台任务。暂停PHP脚本无法帮助您加快页面加载速度。 Apache(或nginx或任何其他Web服务器)仅在PHP脚本完成时才将整个HTTP数据包发送回浏览器。

您可以使用与输出流相关的一些功能,如果Web服务器支持分块传输,那么您可以在加载页面时查看进度。但为此目的,许多开发人员使用AJAX查询。一个查询一个数据块。并在会话中存储块的位置。

但是,正如我最初写的那样,更好的方法是使用后台任务和工作人员。实现这种方法有很多种方法。您可以使用一些专门的服务,如RabbitMQ,Gearman或类似的东西。您可以编写自己的控制台应用程序,然后启动并通过cron-task进行检查。