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

pei*_*pei 3 mysql activerecord ruby-on-rails

第一次在Rails控制台中运行查询...

我有一个查询意外运行:像这样

User.where(:location => 'US'))
Run Code Online (Sandbox Code Playgroud)

显然,这吸引了我很多数据。

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

show full processlist 
Run Code Online (Sandbox Code Playgroud)

 kill #
Run Code Online (Sandbox Code Playgroud)

jke*_*len 5

当我想停止长时间运行的查询时,通常只需要中断一系列。

ctrl c将发送SIGINT,并希望将您带出当前查询或在控制台中循环。但是,有时候这是行不通的,所以我上了一步

ctrl \这将发送SIGQUIT退出当前进程。该命令将退出Rails控制台,然后返回到终端(假设您从中启动了控制台rails c

在最坏的情况下,我将使用ctrl z它将暂停进程,让您找到进程ID(使用topps或其他方式),然后kill在该pid上使用。如果那不起作用,最后使用的东西kill -9将终止该过程。