Skip to content

Instantly share code, notes, and snippets.

@hone

hone/worker.rb

Created Jul 27, 2012
Embed
What would you like to do?
RUN_TIME = 100
RESCUE_TIME = 10
TERMFILE = "term.txt"
class Job
def self.perform(run_time, rescue_time)
sleep(run_time)
puts "Processed job!"
rescue SignalException => e
sleep rescue_time
File.open(TERMFILE, 'w') do |file|
file.puts "Caught Signal Exception: #{e.message}"
end
end
end
if $0 == __FILE__
require 'fileutils'
FileUtils.rm(TERMFILE) if File.exists?(TERMFILE)
pid = Kernel.fork do
Job.perform(RUN_TIME, RESCUE_TIME)
end
sleep(2)
Process.kill("TERM", pid)
Process.waitpid(pid)
if File.exists?(TERMFILE) && File.read(TERMFILE).match(/Caught Signal Exception/)
puts 'SUCCESS!'
else
puts 'FAILURE'
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.