Rails - 正确杀死正在运行的查询的方法

时间:2014-07-25 17:51:48

标签: mysql ruby-on-rails activerecord

首次在rails console中运行查询...

我意外地运行了一个查询:类似这样的

User.where(:location => 'US'))

显然正在拉动我相当多的数据。

现在查询仍在那里。我知道我可以关闭此会话并重新启动另一个会话。但我想知道杀死查询最安全的方法。是否有像mysql中类似的东西:

show full processlist 

 kill #

1 个答案:

答案 0 :(得分:3)

当我想要停止长时间运行的查询时,我通常会上断中断链。

ctrl c将发送SIGINT,希望只是让您退出当前查询或在控制台中循环。但是,有时,这不起作用,所以我向上迈出了一步

ctrl \将发送SIGQUIT以退出当前进程。此命令将退出rails控制台并返回终端(假设您从rails c启动了控制台)

作为最糟糕的情况,我将使用ctrl z暂停该过程,允许您查找进程ID(使用topps或其他任何内容)然后使用关于那个pid的kill。如果这不起作用,最后要使用的是kill -9,这会终止进程。