我设置了以下代码,它将成功列出为 Delayed_Job 运行的不同服务 pid。但是,我正在寻找一种可以在我的视图中调用这些操作的方法。第一个是检查不同 pid 文件的函数,如果它们存在,那么它将返回 true 或 false。
在我看来,我有指向用户单击链接时正在调用的函数的链接。
但是,问题是每当我刷新此页面时,它都会执行方法并自动启动/停止服务。
看法
<% if delayed_job_service_running? %>
<em><b>Service Running</b></em> -
<%= link_to "Stop Service", delayed_job_stop %>
<% else %>
<em><b>Service Stopped</b></em> -
<%= link_to "Start Service", delayed_job_start %>
<% end %>
帮助文件
def delayed_job_service_running?
files = Dir.glob("#{Rails.root}/pids/**/delayed_job*")
pids = []
files.each do |file|
pids << `tail #{file}`
end
pids.empty? ? false : true
end
def delayed_job_start
`script/delayed_job -n 2 start`
end
def delayed_job_stop
`script/delayed_job stop`
end