1
0
Эх сурвалжийг харах

Properly rescue Timeout::Error.

The `rescue` modifier does not take an exception class to rescue.
Akinori MUSHA 10 жил өмнө
parent
commit
7b341cfc62

+ 16 - 14
app/models/agents/mqtt_agent.rb

@@ -118,20 +118,22 @@ module Agents
 
     def check
       mqtt_client.connect do |c|
-
-        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
-
-            create_event :payload => { 
-              'topic' => topic, 
-              'message' => payload, 
-              'time' => Time.now.to_i 
-            }
-          end
-        } rescue TimeoutError
+        begin
+          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
+
+              create_event :payload => {
+                'topic' => topic,
+                'message' => payload,
+                'time' => Time.now.to_i
+              }
+            end
+          }
+        rescue Timeout::Error
+        end
 
         c.disconnect   
       end