Sha256: 7f9dca03751fd12166424dffd55929c07ea076300f5bf73fa887c39fd8fdb8fd
Contents?: true
Size: 695 Bytes
Versions: 3
Compression:
Stored size: 695 Bytes
Contents
module Delayed module Runnable def start trap('TERM') { quit! } trap('INT') { quit! } say "Starting #{self.class.name}" Delayed.lifecycle.run_callbacks(:execute, nil) do loop do run! break if stop? end end ensure on_exit! end private def on_exit!; end def interruptable_sleep(seconds) IO.select([pipe[0]], nil, nil, seconds) end def stop pipe[1].close end def stop? pipe[1].closed? end def quit! Thread.new { say 'Exiting...' }.tap do |t| stop t.join end end def pipe @pipe ||= IO.pipe end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
delayed-0.2.0 | lib/delayed/runnable.rb |
delayed-0.1.1 | lib/delayed/runnable.rb |
delayed-0.1.0 | lib/delayed/runnable.rb |