我正在设计一个状态页面,需要显示延迟作业是否正在运行。请帮我找到在代码中查找它的方法。
我使用的技术包括: Rails 3.0.20, ruby 1.8.7(2011-06-30修补程序级别352)以及 delayed_job 3.0.4。
我正在设计一个状态页面,需要显示延迟作业是否正在运行。请帮我找到在代码中查找它的方法。
我使用的技术包括: Rails 3.0.20, ruby 1.8.7(2011-06-30修补程序级别352)以及 delayed_job 3.0.4。
使用 Rails 5.x,您可以通过SSH连接到服务器,并进入应用程序中的 /current 文件夹,然后运行:
RAILS_ENV=production bin/delayed_job status
您可以使用
RAILS_ENV=production script/delayed_job status
如果您正在检查生产模式
locked_by
字段。Delayed::Job.where('locked_by is not null')
将为您提供一些结果(如果有作业在运行)。delayed_job daemon
始终运行的最佳方式是向我们的Rails应用程序添加一个initializer
,以检查守护程序是否正在运行。如果没有运行,则initializer
将启动daemon
,否则,它将保持不变。Delayed_Job daemon
是否正在运行?PID文件
是否存在(File.exist?…)。如果存在,则假定它正在运行,否则启动它。#!/usr/bin/env ruby
pid = ARGV[0].to_i
begin
Process.kill(0, pid)
puts "#{pid} is running"
rescue Errno::EPERM # changed uid
puts "No permission to query #{pid}!";
rescue Errno::ESRCH
puts "#{pid} is NOT running."; # or zombied
rescue
puts "Unable to determine status for #{pid} : #{$!}"
end
RAILS_ENV=production script/delayed_job status
- bayfieldcoder