summaryrefslogtreecommitdiff
path: root/lib/tapicero/loop.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tapicero/loop.rb')
-rw-r--r--lib/tapicero/loop.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/tapicero/loop.rb b/lib/tapicero/loop.rb
new file mode 100644
index 0000000..9c06e52
--- /dev/null
+++ b/lib/tapicero/loop.rb
@@ -0,0 +1,19 @@
+module Tapicero
+ class Loop
+ def listen(db_name)
+ loop do
+ begin
+ users = CouchRest::Changes.new(db_name)
+ UserEventHandler.new(users)
+ users.listen
+ Tapicero.logger.info('Lost contact with couchdb, will try again in 10 seconds')
+ sleep 10
+ rescue SystemCallError => exc
+ Tapicero.logger.info('Problem connecting to couchdb (#{exc}). Will try again in 10 seconds.')
+ sleep 10
+ retry
+ end
+ end
+ end
+ end
+end