php - 受控数据库插入

标签 php mysql pdo

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

有没有办法进行受控插入,以便插入X量,然后暂停几秒钟,然后继续直到完成?

在插入期间,它还会执行其他查询,因此它可能会变得相当繁重。

我不太确定自己在寻找什么,因此一直在 Google 上努力寻找帮助。

最佳答案

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

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

但正如我一开始所写的,更好的方法是使用后台任务和工作人员。这种方法有多种实现方式。您可以使用一些专门的服务,例如 RabbitMQ、Gearman 或类似的服务。您可以编写自己的控制台应用程序,然后通过 cron-task 启动并检查该应用程序。

关于php - 受控数据库插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502305/

相关文章:

MySQL 查询将 0 添加到数据库但日志却另有说明?

mysql - 使用 Navicat 创建不同的 mysql 连接

php - 引用 — 有关 PDO 的常见问题

php - 使用PDO绑定(bind)数组

php - 有没有一种技术可以避免在 if 语句中重写长操作数?

php - 将 MYSQL 查询转换为 Laravel 5 查询

php - 使用变量名在 PHP 中处理多维数组

php - 正则表达式将 URL 转换为链接而不会弄乱文本中的现有链接

php - 获取请求超时 PDO 连接

mysql - 带条件的关系选择