Connessione interrotta

Ciao,
sto lavorando su un plugin per Discourse chiamato Disraptor, che funge da sorta di reverse proxy per consentire l’incorporamento di un altro sito web nel contesto di Discourse.

Il sito che dovrebbe essere incorporato in questo modo richiede attualmente molto tempo per servire determinate rotte. Di conseguenza, dopo 30 secondi viene restituito un template “not_found” renderizzato.

So che il timeout standard per i worker Unicorn è di 30 secondi nell’ambiente di produzione. Ho quindi iniziato ad aumentare questo timeout modificando la configurazione di Unicorn. Osservando il log degli errori di Unicorn, posso confermare che il worker viene effettivamente terminato più tardi, ma il template “not_found” viene comunque renderizzato (prima che il worker venga terminato).

Dopo ulteriori ricerche, non sono riuscito a trovare alcun indizio su da dove provenga questo timeout di 30 secondi o dove sia impostato. Anche se il lungo tempo di risposta è di per sé un problema che verrà probabilmente risolto in futuro, al momento sarebbe perfetto se fosse possibile modificare tale timeout.
Qualcuno ha un’idea su come potrebbe funzionare?

Grazie in anticipo!

Credo che il timeout di unicorn di 30 secondi provenga da qui: discourse/config/unicorn.conf.rb at main · discourse/discourse · GitHub

Sarebbe bello se ci fosse un modo per cambiarlo, ad esempio tramite ENV[“UNICORN_TIMEOUT”] in produzione.

3 Mi Piace