Properly rescue Timeout::Error.

The `rescue` modifier does not take an exception class to rescue.
This commit is contained in:
Akinori MUSHA 2014-10-14 19:35:13 +09:00
parent f09bfd8a5e
commit 7b341cfc62

View file

@ -118,20 +118,22 @@ module Agents
def check
mqtt_client.connect do |c|
begin
Timeout.timeout((interpolated['max_read_time'].presence || 15).to_i) {
c.get(interpolated['topic']) do |topic, message|
Timeout::timeout((interpolated['max_read_time'].presence || 15).to_i) {
c.get(interpolated['topic']) do |topic, message|
# A lot of services generate JSON. Try that first
payload = JSON.parse(message) rescue message
# A lot of services generate JSON. Try that first
payload = JSON.parse(message) rescue message
create_event :payload => {
'topic' => topic,
'message' => payload,
'time' => Time.now.to_i
}
end
} rescue TimeoutError
create_event :payload => {
'topic' => topic,
'message' => payload,
'time' => Time.now.to_i
}
end
}
rescue Timeout::Error
end
c.disconnect
end