<div dir="ltr"><div>Salve a tutti,</div><div><br></div><div>Chiedo se qualcuno sa.</div><div><br></div><div>Ho una situazione del genere:</div><div><br></div><div>- nginx.</div><div>- uwsgi.</div><div>- djnago wsgi application.</div><div>- postgresql uno schema public e circa 170 schemi *per user*.</div><div>- sqlalchemy.</div><div><br></div><div>In teoria l'idea è questa:</div><div><br></div><div>- Login con schema public.</div><div>- Recupero dell'ID_SCHEMA dal record dell'utente.</div><div>- SET SEARCH_PATH con ID_SCHEMA, public;</div><div>- Resto delle query.</div><div><br></div><div>Per impostare lo schema utilizzo l'evento checkout dei *Connection Pool Events*</div><div>@event.listens_for(Pool, 'checkout')</div><div><br></div><div>Per le sessioni database di sqlalchemy utilizzo una stipida classe singleton che usa scoped_session.</div><div>Nell'evento *checkout* uso django-crequest per recuperare le informazioni per l'utente della request corrente.</div><div><br></div><div>La cosa sembra funzionare, ma quando provo a lanciare tipo un centinaio di client paralleli comincia a darmi degli errori, apparentemente casuali, che vanno dal *cursor already closed* a *too many clients already*</div><div><br></div><div>Come potrei evitare questi errori o altri non ancora visti? </div><div>Sto facendo la cosa in maniera corretta? </div><div>Quanto legno potrebbe sgranocchiare una marmotta se una marmotta potesse sgranocchiare legno?</div><div><br></div><div>notte</div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Luca</div></div></div>
</div>