這種情況在很多場合都發生過,我希望我能在這裏找到答案。Rails控制檯凍結手動刪除/銷燬操作
有時,在使用Rails控制檯並對對象執行#update或#destroy操作時,我的控制檯將在日誌中發佈「BEGIN」後簡單凍結。我現在有一個開放,一個簡單的摧毀,已經坐了十分鐘。
即:
my_object.find(permitted_params[:thing][:id]).destroy
CTRL + C在我的Mac不殺它,只是呈現:
^C^C^C^C^C^C^C^C^C^C
然後,當我終於殺了標籤,並重新啓動我得到的服務器:
A server is already running. Check /path/to/app/tmp/pids/server.pid.
然後當我清除server.pid
並嘗試重新啓動服務器時,我得到:
/Users/nickschwaderer/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `bind': Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)
在這一點上我跑lsof -wni tcp:3000
,然後kill -9 #whatever_my_pid_was
,到最後設置一切直奔重新運行該服務器。
在這裏發生了什麼山姆藍色的heck?
'^ D'可能會殺死它? – MMachinegun
也許發佈你的更新代碼並銷燬操作?是什麼導致凍結 – Ren
您是否在開發時使用任何sql客戶端?某些客戶端使用事務進行更新/刪除查詢。在您關閉客戶端之前,交易未完成。如果您嘗試在從SQL客戶端運行查詢的同時在軌同步表上運行更新/銷燬查詢,則控制檯會凍結。 – Girish