A
Andre Nathan
Hello
I'm pleased to announce a new release of Ruby/Watchcat. This release
includes a fix to a possible descriptor leak in the C extension and also
a pure-Ruby version of the library, which makes it usable in other Ruby
implementations. RDoc documentation is now available too.
Ruby/Watchcat is an extension for Ruby for the development of
watchcatd-aware applications.
Watchcatd is a watchdog-like daemon in the sense that it takes actions
in situations where a machine is under heavy load and/or unresponsive.
However, watchcatd isn't as drastic as the usual watchdog systems, which
reboot the machine. Instead, all it does is sending a signal to a
registered process (which by default is SIGKILL) if the process doesn't
send it a heartbeat before a user-specified timeout.
Ruby/Watchcatd allows you to register ruby applications with watchcatd.
Install it with
gem install ruby-watchcat
or
gem install ruby-watchcat-pure
Examples:
require 'watchcat'
# Create a new cat.
cat = Watchcat.newtimeout => 10, :signal => 'KILL',
:info => 'killing from ruby')
loop do
# Here you do something that could exceed the timeout
sleep 9 + rand(3)
cat.heartbeat # we're still alive
end
cat.close # clean the cat's litter box
You can also use a block, in which case the cat cleans its own litter
box:
require 'watchcat'
Watchcat.new do |cat|
loop do
do_something_that_can_be_slow
cat.heartbeat
end
end
For more details, please refer to the README file in the distribution
and in the project's homepage at
http://oss.digirati.com.br/ruby-watchcat/
Best regards,
Andre Nathan
I'm pleased to announce a new release of Ruby/Watchcat. This release
includes a fix to a possible descriptor leak in the C extension and also
a pure-Ruby version of the library, which makes it usable in other Ruby
implementations. RDoc documentation is now available too.
Ruby/Watchcat is an extension for Ruby for the development of
watchcatd-aware applications.
Watchcatd is a watchdog-like daemon in the sense that it takes actions
in situations where a machine is under heavy load and/or unresponsive.
However, watchcatd isn't as drastic as the usual watchdog systems, which
reboot the machine. Instead, all it does is sending a signal to a
registered process (which by default is SIGKILL) if the process doesn't
send it a heartbeat before a user-specified timeout.
Ruby/Watchcatd allows you to register ruby applications with watchcatd.
Install it with
gem install ruby-watchcat
or
gem install ruby-watchcat-pure
Examples:
require 'watchcat'
# Create a new cat.
cat = Watchcat.newtimeout => 10, :signal => 'KILL',
:info => 'killing from ruby')
loop do
# Here you do something that could exceed the timeout
sleep 9 + rand(3)
cat.heartbeat # we're still alive
end
cat.close # clean the cat's litter box
You can also use a block, in which case the cat cleans its own litter
box:
require 'watchcat'
Watchcat.new do |cat|
loop do
do_something_that_can_be_slow
cat.heartbeat
end
end
For more details, please refer to the README file in the distribution
and in the project's homepage at
http://oss.digirati.com.br/ruby-watchcat/
Best regards,
Andre Nathan