-
Notifications
You must be signed in to change notification settings - Fork 9
Closed
Description
I was helping a friend implement watchdog notifications, and noticed that, unlike sd_watchdog_enabled(3), this gem doesn’t have a way to get the configured watchdog interval. Instead, pretty much every Ruby gem or app I’ve seen use this has to implement the same pattern:
def do_watchdog
return unless SdNotify.watchdog?
# Divide by 1,000,000 since 99% of Ruby tooling uses seconds, not microseconds.
interval = Integer(ENV.fetch('WATCHDOG_USEC')) / 1_000_000.0
loop do
SdNotify.watchdog
sleep interval
end
endIt would be much more convenient (and require less digging around to learn the environment variables) if this gem exposed a method to get the watchdog interval:
def do_watchdog
return unless SdNotify.watchdog?
loop do
SdNotify.watchdog
sleep SdNotify.watchdog_interval
end
endIdeally, I think this would:
-
Return 0 (or maybe -1?) if the watchdog is not expecting notifications (that is, if
SdNotify.watchdog?would have returned false). -
Return the number of seconds as a float instead of the number of microseconds as an integer, since almost all use cases will involve doing this anyway.
Metadata
Metadata
Assignees
Labels
No labels