Kaynağa Gözat

Show async errors

Andrew Kane 8 yıl önce
ebeveyn
işleme
e8f8493330
1 değiştirilmiş dosya ile 10 ekleme ve 3 silme
  1. 10 3
      lib/blazer/run_statement_job.rb

+ 10 - 3
lib/blazer/run_statement_job.rb

@@ -6,10 +6,17 @@ module Blazer
     workers 4
 
     def perform(result, data_source, statement, options)
-      ActiveRecord::Base.connection_pool.with_connection do
-        data_source.connection_model.connection_pool.with_connection do
-          result << RunStatement.new.perform(data_source, statement, options)
+      begin
+        ActiveRecord::Base.connection_pool.with_connection do
+          data_source.connection_model.connection_pool.with_connection do
+            result << RunStatement.new.perform(data_source, statement, options)
+          end
         end
+      rescue Exception => e
+        result.clear
+        result << Blazer::Result.new(data_source, [], [], "Unknown error", nil, false)
+        Blazer.cache.write(data_source.run_cache_key(options[:run_id]), Marshal.dump([[], [], "Unknown error", nil]), expires_in: 30.seconds)
+        raise e
       end
     end
   end