Backgroundrb help needed!

I have what I thought would be a simple thing - we use backgroundrb to
watch a directory and process new files. We want to make sure that the
worker is running. I thought I could have a schedule that started the
worker every 5 minutes to make sure, but, it loads a new one each time
(not surprising).
Is there a way to make sure that there is one (and only one) of these
workers running at all times?

Hi Phil,

On Sat, 2009-09-05 at 04:41 -0700, phil wrote:

I have what I thought would be a simple thing - we use backgroundrb to
watch a directory and process new files. We want to make sure that the
worker is running. I thought I could have a schedule that started the
worker every 5 minutes to make sure, but, it loads a new one each time
(not surprising).
Is there a way to make sure that there is one (and only one) of these
workers running at all times?

You’ll probably have better luck with this on the backgroundrb list.

http://backgroundrb.rubyforge.org/community/

HTH,
Bill

On Sep 5, 1:32 pm, bill walton [email protected] wrote:

You’ll probably have better luck with this on the backgroundrb list.

http://backgroundrb.rubyforge.org/community/

HTH,
Bill

BackgrounDRb or no, creating a file containing the process’s PID, and
verifying that each time the process is started is the typical unixy
way to do this. How I do it:

def self.is_running?
if File.exists? pidfile
begin
Process.kill 0, pid
return true
rescue Errno::EPERM
puts “You don’t own this process.”
return true
rescue Errno::ESRCH #pid doesn’t exist anymore
delete_pidfile
end
end
false
end

def self.delete_pidfile
File.delete pidfile
rescue
end

def self.pid
File.read(pidfile).chomp.to_i rescue nil
end

def self.pidfile
“path/to/background_process.pid”
end

And of course just create the the appropriate file writing Process.pid
to it.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs