PHP : Execute sql queries in background

标签 php postgresql yii background-process

我正在为数据库使用 PHP(Yii 框架)和 Postgresql。基本上是一个 wappstack .如果他们担心这个问题,我只是提到了他们。

无论如何,我想要实现的是我有一个提交操作:

public function actionSubmitData($id){


    //Execute Sql queries here

$this->render('view',array(
                //some data
            ));
}

问题是我将处理大量数据;大约 50,000 条记录将在 4 个表中的每个表中处理,每个表大约有 10 列,这是相当大的。用例是用户提交,然后在后台执行sql语句,但是 View 'view'应该已经呈现,不需要用户等待记录被处理。他/她可以在处理记录后稍后查看。

一个普通的请求会先执行sql语句,然后渲染 View 。问题是页面需要大约 3-5 分钟。该页面从不加载;并且记录的创建还没有完成,只是在请求密集时出现白页。

换句话说,我如何在后台执行sql查询?让用户在请求正在处理时仍能浏览应用程序?在后台某处,正在处理记录?此问题的解决方法是什么?谢谢!

最佳答案

我建议将您的查询(工作)推送到某些消息系统,如 RabbitMQGearman .它会让你的工作并行进行。您甚至可以轻松扩展您的工作。

关于PHP : Execute sql queries in background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989038/

相关文章:

sql - 使用列值 postgresql 创建间隔

jquery - Firebug 错误: jQuery is not defined - in yii app

yii - 如何显示通过 $model->save() 函数生成的插入查询

python - Django 设置 : psycopg2. OperationalError: FATAL: Peer authentication failed for user "indivo"

postgresql - 使用 clojure.java.jdbc/db-do-prepared 检查 uuid 是否存在于 PostgreSQL 表中失败

php - Yii 框架可扩展性

php - CI 新的默认 Controller 不工作

php - MySQL SELECT 查询似乎跳过空格

php - 如何修复警告 : mysqli_query() expects parameter 2 to be string

PHP:在脚本完成之前获取输出