有没有办法在 Zend 框架中跟踪和终止 Postgres 查询
我正在开发一个使用 Zend Framework、PHP 5.3 和 PostGres 的项目。我构建了一个严重依赖 AJAX 请求的 JavaScript 前端。
例如,每当用户尝试添加新字段(这很常见)时,都会发送一个请求,触发长时间运行的查询(5-10 秒)。如果用户连续添加 5,则可能需要 60 秒才能获得正确的查询值。
我想在每次收到连续请求时终止当前的 AJAX 请求和 DB 查询。 Zend 中是否有一种方法可以跟踪该查询并在收到连续的 ajax 请求时终止它?
让您了解我目前正在做什么 -
$db = Zend_Registry::get('database');
$select = 'SELECT get_Query(' . $this->client_id ')';
$data = $db->query($select)->fetchAll();
return $data;
I am working on a project using Zend Framework, PHP 5.3, and PostGres. I have built a javascript front end that relies heavily on AJAX requests.
For instance, any time a user tries to add a new field( which is very common), a request is sent that triggers a long running query (5-10 seconds). If the user adds 5 in a row, thats potentially 60 seconds to get the correct query value.
I would like to kill the current AJAX request and DB Query every time a successive request is received.
Is there a means in Zend to track that query and kill it if a successive ajax request is received?
To give you an idea of what I'm currently working with -
$db = Zend_Registry::get('database');
$select = 'SELECT get_Query(' . $this->client_id ')';
$data = $db->query($select)->fetchAll();
return $data;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据这篇文章,可以搜索状态为“idle in transaction”的 postgres 查询的
ps -ef
输出,并使用kill
终止这些查询这将需要使用
exec()
或类似的函数来执行系统命令。According to this article, you can search the output of
ps -ef
for postgres queries with a status of "idle in transaction" and terminate those queries usingkill
This will require the use of
exec()
or a similar function to execute system commands.