[ARVADOS] updated: 0a72fd5c9f764eba4fc295d8beb24ac3d01885c5

git at public.curoverse.com git at public.curoverse.com
Thu Apr 24 16:05:02 EDT 2014


Summary of changes:
 services/api/lib/eventbus.rb |   77 ++++++++++++++++++++---------------------
 1 files changed, 38 insertions(+), 39 deletions(-)

       via  0a72fd5c9f764eba4fc295d8beb24ac3d01885c5 (commit)
      from  87f17f28080eef37ad940a039fd1623e72e3058e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 0a72fd5c9f764eba4fc295d8beb24ac3d01885c5
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Thu Apr 24 16:04:59 2014 -0400

    Wrapped channel callback in exception handler.

diff --git a/services/api/lib/eventbus.rb b/services/api/lib/eventbus.rb
index c93f2e5..0865567 100644
--- a/services/api/lib/eventbus.rb
+++ b/services/api/lib/eventbus.rb
@@ -52,49 +52,48 @@ class EventBus
 
     sub = @channel.subscribe do |msg|
       begin
-      puts "Waking up"
-
-      # Must have at least one filter set up to receive events
-      if ws.filters.length > 0
-
-        # Start with log rows readable by user, sorted in ascending order
-        logs = Log.readable_by(ws.user).order("id asc")
-
-        if ws.last_log_id
-          # Only get log rows that are new
-          logs = logs.where("logs.id > ? and logs.id <= ?", ws.last_log_id, msg.to_i)
-        else
-          # No last log id, so only look at the most recently changed row
-          logs = logs.where("logs.id = ?", msg.to_i)
-        end
+        # Must have at least one filter set up to receive events
+        if ws.filters.length > 0
+
+          # Start with log rows readable by user, sorted in ascending order
+          logs = Log.readable_by(ws.user).order("id asc")
+
+          if ws.last_log_id
+            # Only get log rows that are new
+            logs = logs.where("logs.id > ? and logs.id <= ?", ws.last_log_id, msg.to_i)
+          else
+            # No last log id, so only look at the most recently changed row
+            logs = logs.where("logs.id = ?", msg.to_i)
+          end
 
-        # Record the most recent row
-        ws.last_log_id = msg.to_i
+          # Record the most recent row
+          ws.last_log_id = msg.to_i
 
-        # Now process filters provided by client
-        cond_out = []
-        param_out = []
-        ws.filters.each do |filter|
-          ft = record_filters filter.filters
-          cond_out += ft[:cond_out]
-          param_out += ft[:param_out]
-        end
+          # Now process filters provided by client
+          cond_out = []
+          param_out = []
+          ws.filters.each do |filter|
+            ft = record_filters filter.filters
+            cond_out += ft[:cond_out]
+            param_out += ft[:param_out]
+          end
 
-        # Add filters to query
-        if cond_out.any?
-          logs = logs.where(cond_out.join(' OR '), *param_out)
-        end
+          # Add filters to query
+          if cond_out.any?
+            logs = logs.where(cond_out.join(' OR '), *param_out)
+          end
 
-        # Finally execute query and send matching rows
-        logs.each do |l|
-          ws.send(l.as_api_response.to_json)
+          # Finally execute query and send matching rows
+          logs.each do |l|
+            ws.send(l.as_api_response.to_json)
+          end
+        else
+          # No filters set up, so just record the sequence number
+          ws.last_log_id.nil = msg.to_i
         end
-      else
-        # No filters set up, so just record the sequence number
-        ws.last_log_id.nil = msg.to_i
-      end
       rescue Exception => e
         puts "#{e}"
+        ws.close
       end
     end
 

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list