by smuser » 3 March 2025, 8:54
Il ciclo di request-response ha un timeout client e un timeout server (a seconda di cosa usi trovi documentazione lato server e lato client, per la getHttp c'è un timeout da impostare ma parla di connessione non di attesa risposta).
In generale per operazioni lunghe la cosa migliore è un polling di cicli brevi tipo "request: hai finito? response: lasciami lavorare", aumentare i timeout non è mai una soluzione ottimale.
Non sono sicuro però di aver capito il giro che vuoi impostare. Per non bloccare l'applicazione principale presumo che la gethttp avvenga in una server session o sbaglio? Perchè dovrebbe essere bloccante?
In ogni caso converebbe rendere le due operazioni asicrone e se il db è condiviso si può fare salvando su db le richieste e lo stato della richiesta (e dall'app principale fai polling) oppure puoi fare ciclicamente delle chiamate http passando un "jobid" per sapere a che punto è.
Ho fatto qualcosa di simile per gestire operazioni server side potenzialmente lunghe diverse ore e quindi predisposto app ad hoc su pool ad hoc configurato per avere una web session lunga ore. Dall'app client fai una pagina che ti permette di inserire nuove richieste e fa polling con un timer client side e nell'app server hai una serversession che fa polling con un timer server e che verifica se ci sono job da eseguire e nel caso li lancia ciascuno in una sua serversession che gestisce il job e salva gli stati intermedi (anche il progress) su db.