diff options
| author | Teddy Wing | 2017-08-25 11:28:12 +0200 |
|---|---|---|
| committer | Teddy Wing | 2017-08-25 11:28:12 +0200 |
| commit | 8c0018c32933eab21645626013a19de3775c927f (patch) | |
| tree | 27457d3cbb2776ec266a798610edcfdf486f8d53 | |
| parent | 92484fa903dd7cbf4a40bf6b0b65ed79306c6ae9 (diff) | |
| download | chouette-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.rb | 13 |
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 |
