[英]Delayed_Job won't die despite my incessant murdering
我最近在我的after_restart階段添加了delay_job rap。 像這樣:
system "script/delayed_job stop"
system "script/delayed_job start -n 3"
多數情況下有效。 直到今天我遇到一點障礙。 我發現即使我反復手動執行script/delayed_job stop
后,delay_job實例仍在運行。
我仍然得到這個:
user@ip-10-126-6-125 /data/HQ_Channel2/current $ ps aux | grep del
user 11034 0.0 3.4 74016 61964 ? S Dec05 0:19 delayed_job.0
user 11036 0.0 3.5 73660 63516 ? S Dec05 0:21 delayed_job.1
user 11038 0.0 3.6 73980 65256 ? S Dec05 0:17 delayed_job.2
我試圖通過script/delayed_job stop
關閉它是否不合適?
我知道如何殺死它的唯一其他方法是使用kill -9
,但這不是過度殺傷力嗎? 而且,我將如何動態地實現它?
我有類似的問題。
查看Engine Yard的delay_job配方 ,特別是帶有啟動和停止命令的模板 。 它在Engine Yard實例上的/engineyard/bin/dj
使用腳本。
<% (@num_workers || 1).times do |num| %>
check process <%= @worker_name %>_<%= num %>
with pidfile /var/run/engineyard/dj/<%= @app_name %>/dj_<%= @worker_name %>.pid
start program = "/engineyard/bin/dj <%= @app_name %> start <%= @framework_env %> <%= @worker_name %>" with timeout 60 seconds
stop program = "/engineyard/bin/dj <%= @app_name %> stop <%= @framework_env %> <%= @worker_name %>" with timeout 60 seconds
if totalmem is greater than 300 MB then restart # eating up memory?
group dj_<%= @app_name %>
<% end %>
調用stop腳本時,它首先使用kill -15
(TERM),等待默認為60秒的寬限期,如果它仍然存在,則使用kill -9
。
如果可以在以后減少維護,請使用Engine Yard的腳本(就此而言為配方)。 但是,如果對您不起作用,則可以基於這些概念來編寫腳本。 我在升級到Rails 3時遇到了一些問題,因此它可能對您不起作用。 我剛剛聯系了Engine Yard,但我懷疑這對他們來說是否是高度優先。 也許如果您也與他們聯系,那將會改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.