devo fare una HTTP request da un server rails, so che esiste net/http,
ma ho visto che attualmente ci sono librerie di piu’ alto livello
(hhtpclient?) voi cosa consigliate?
Il server deve permettere all’utente di mandare una request asincrona ad
un server esterno (una google app).
on response: do la classificazione (Maligno/Benigno)
L’utente salva la scheda
Per inciso:
questo e’ un progetto pilota per un “classificatore” di breast cancer
che sfrutta un classificatore a rete neurale sviluppato da una ragazzina
di 17 anni (invidia!)
Il suo classificatore sembra classificare correttamente il 99% dei casi
(che cazzo!)
Non vi prometto niente, ma se riesco a convincere che il progetto e’
valido potrei coinvolgere uno studente che abbia voglia di fare una tesi
in Rails
Allora, da quello che ho capito la richiesta asincrona nel browser
(ovviamente), ma non detto che debba esserlo anche sul server.
Non buona prassi, ma se il servizio molto veloce puoi fare una
chiamata sincrona nel controller se si tratta di una demo da fare
velocemente.
In passato ho usato HTTParty per cose del genere. E’ notevole per la
semplicit di utilizzo.
Altrimenti hai due possibilit:
delayed job o redis o altro e polling ajax alla risorsa per vedere
quando ha finito (background job).
avventurarti in un web server evented tipo goliath o eventmachine e
mantenere la connessione aperta con il servizio esterno durante la
chiamata. (evented server)
Generalmente uso unicorn quindi non sono esperto di webserver tipo
eventmachine.
Se sai come scrivere codice thread safe dai una occhiata a sidekiq che
usa i thread e evita che gli workers ti si mangino tutte le risorse.