[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