aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2017-08-25 11:28:12 +0200
committerTeddy Wing2017-08-25 11:28:12 +0200
commit8c0018c32933eab21645626013a19de3775c927f (patch)
tree27457d3cbb2776ec266a798610edcfdf486f8d53
parent92484fa903dd7cbf4a40bf6b0b65ed79306c6ae9 (diff)
downloadchouette-core-8c0018c32933eab21645626013a19de3775c927f.tar.bz2
NetexImport: Run Java import API call in a thread
While testing imports with Alban, we saw that this request was blocking, not asynchronous. The Java application apparently didn't figure that it should close HTTP connections before handling a long-running import job. In order to get around that on the Rails appliation side, Alban suggested putting the request in a thread. Works like a charm, and we respond in a sensible amount of time.
-rw-r--r--app/models/netex_import.rb13
1 files changed, 8 insertions, 5 deletions
diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb
index 575cef816..d07acd821 100644
--- a/app/models/netex_import.rb
+++ b/app/models/netex_import.rb
@@ -5,11 +5,14 @@ class NetexImport < Import
def launch_java_import
logger.warn "Call iev get #{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}"
- begin
- Net::HTTP.get(URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}"))
- rescue Exception => e
- logger.error "IEV server error : #{e.message}"
- logger.error e.backtrace.inspect
+
+ Thread.new do
+ begin
+ Net::HTTP.get(URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}"))
+ rescue Exception => e
+ logger.error "IEV server error : #{e.message}"
+ logger.error e.backtrace.inspect
+ end
end
end
end