lib/rhosync/source_sync.rb in rhosync-2.1.11 vs lib/rhosync/source_sync.rb in rhosync-2.1.12

- old
+ new

@@ -57,22 +57,22 @@ do_query(params) end end def do_query(params=nil) - @source.lock(:md) do - @source.if_need_refresh do - Stats::Record.update("source:query:#{@source.name}") do - if _auth_op('login') - result = self.read(nil,params) - _auth_op('logoff') - end - # update refresh time - query_failure = Store.get_keys(@source.docname(:errors)).size > 0 - @source.update_refresh_time(query_failure) + result = nil + @source.if_need_refresh do + Stats::Record.update("source:query:#{@source.name}") do + if _auth_op('login') + result = self.read(nil,params) + _auth_op('logoff') end + # re-wind refresh time in case of error + query_failure = Store.exists?(@source.docname(:errors)) + @source.rewind_refresh_time(query_failure) end end + result end # Enqueue a job for the source based on job type def async(job_type,queue_name,client_id=nil,params=nil) SourceJob.queue = queue_name