Obișnuiau să le obțin mereu pe Apache1 / fastcgi. Cred că este provocată de închiderea rapidă înainte ca ruby să se termine.
Trecerea la mongrel este un prim pas bun, dar mai sunt multe de făcut. Este o idee proastă de a elimina serviciile web pe paginile live, în special de la Rails. Rails nu este sigură în legătură cu firul. Numărul de conexiuni concurente pe care le puteți sprijini este egal cu numărul de mongrels (sau procese de pasageri) din cluster.
Dacă aveți un mongrel și cineva accesează o pagină care solicită un serviciu web care durează 10 secunde în timp, fiecare solicitare de pe site-ul dvs. va expira în acel moment. Cea mai mare parte a balancerilor de sarcină doar ciclu prin mongrels orbește, deci dacă aveți două mongrels, fiecare altă cerere va timeout.
Orice lucru care poate fi imprevizibil lent trebuie să se întâmple într-o coadă de locuri de muncă. Primul hit la / lent / acțiune adaugă lucrarea la coadă, iar / slow / action continuă să se actualizeze prin reîmprospătarea paginilor sau interogările prin ajax până când lucrarea este terminată, iar apoi obțineți rezultatele din coada de așteptare. Există câteva cozi de locuri de muncă pentru Rails în zilele noastre, dar cea mai veche și probabil cea mai utilizată este BackgroundRB .
O altă alternativă, în funcție de natura aplicației dvs., este de a elimina serviciul la fiecare N minute prin cron, cache-ul de date la nivel local și de a vă citi pagina live din memoria cache.