I have a Rails application in which I use delayed_job. I want to determine if I have a delayed_job process or not; sort of
if in_delayed_job?
# do something only if it is a delayed_job process...
else
# do something only if it is not a delayed_job process...
end
But I canโt figure out how to do this. This is what I am using now:
IN_DELAYED_JOB = begin
basename = File.basename $0
arguments = $*
rake_args_regex = /\Ajobs:/
( basename == 'delayed_job' ) ||
( basename == 'rake' && arguments.find{ |v| v =~ rake_args_regex } )
end
Another solution, as @MrDanA said:
$ DELAYED_JOB=true script/delayed_job start
IN_DELAYED_JOB = ENV['DELAYED_JOB'].present?
but they are weak IMHO solutions. Can anyone suggest a better solution?
source
share