【发布时间】:2011-07-05 19:41:27
【问题描述】:
我有一个很长的 SQL 查询执行。当我关闭浏览器页面时,sql 查询(postgresql)继续执行。如何在页面关闭时阻止它执行?
【问题讨论】:
标签: php sql postgresql
我有一个很长的 SQL 查询执行。当我关闭浏览器页面时,sql 查询(postgresql)继续执行。如何在页面关闭时阻止它执行?
【问题讨论】:
标签: php sql postgresql
嗯,你不能保证没有 JavaScript 就会断开连接,唯一能确保你知道窗口已经关闭的真正方法是让它不断地 ping 服务器——有时页面关闭事件不会火。因此,您基本上需要在后台跟踪 ping,如果在给定时间内没有触发,请调用 kill 进程。
据我所知,如果不以管理员身份登录并实际强制关闭威胁,就不可能告诉 PostgreSQL 连接。该方法称为pg_cancel_backend。我不会使用命令行 kill 强行终止进程。这可能会产生影响,但可以通过使用内置工具来避免。
【讨论】:
您必须有一些 javascript 会在页面关闭时获取,并执行回发到服务器,该服务器将连接到正在执行的进程并停止它。
【讨论】:
你可以杀死服务器上的进程。
【讨论】:
从你的问题的声音来看,我猜这是一台开发机器。如果是这种情况,只需重新启动 Web 服务器即可终止 php 脚本。如果您使用的是 apache,则如下所示:
sudo apache2ctl restart
【讨论】: