Utilizziamo Twisted in modo estensivo per le applicazioni che richiedono una grande quantità di io asincrono. Ci sono alcuni casi in cui roba è invece legata alla cpu e per questo generiamo un pool di processi per fare il lavoro e avere un sistema per gestirli su più server, tutto fatto in Twisted. Funziona alla grande. Il problema è che è difficile avvicinare i nuovi membri del team. La scrittura di codice asincrono in Twisted richiede una curva di apprendimento quasi verticale. È come se gli umani non pensassero in quel modo naturalmente.Eventlet o gevent o Stackless + Twisted, Pylons, Django e SQL Alchemy
Stiamo considerando un approccio misto forse. Forse mantenere la parte del server xmlrpc e la gestione dei processi in Twisted e implementare le altre cose nel codice che almeno sembra sincrono in una certa misura pur non essendo tale. Poi di nuovo mi piace l'esplicito oltre implicito, quindi devo pensarci un po 'di più. Comunque su greenlets: quanto funziona bene quella roba? Quindi c'è Stackless e, come potete vedere dal mio avatar di Gallentean, sono perfettamente consapevole dell'enorme successo che ha avuto nel suo utilizzo per il gioco EVE Online di prima classe di CCP. Che mi dici di Eventlet o di gevent? Bene per ora solo Eventlet funziona con Twisted. Comunque gevent afferma di essere più veloce in quanto non è una pura implementazione in Python, ma piuttosto si basa su libevent. Inoltre afferma di avere meno idiosincrasie e difetti. gevent È gestito da 1 ragazzo per quanto posso dire. Questo mi rende un po 'diffidente, ma tutti i grandi progetti iniziano così così ... Poi c'è PyPy - Non ho ancora finito di leggerlo ancora - l'ho visto in questa discussione: Drawbacks of Stackless.
Così confuso - mi chiedo cosa diavolo fare - sembra che Eventlet sia probabilmente la migliore scommessa, ma è davvero abbastanza stabile? Qualcuno là fuori ha qualche esperienza con esso? Dovremmo andare con Stackless invece come è stato intorno e la tecnologia è provata - proprio come Twisted è pure - e lavorano insieme bene. Ma odio ancora dover avere una versione separata di Python per farlo. cosa fare ....
Questo blog un po 'odioso mi ha colpito per la testa: Asynchronous IO for Grownups Non capisco perché Twisted è come un commento Java per me Java è in genere dove ci si trova mentalità di threading ma qualunque cosa. Tuttavia, se quella cosa della patch della scimmia funziona davvero così, allora wow. Solo wow!
Puoi commentare ulteriormente cosa intendi per MySQL non essere buono per OLTP? –
L'ho tolto perché non era rilevante per il resto dell'articolo. Ma ciò che lo rende povero è il supporto abissale per le visualizzazioni, i trigger lenti e le stored procedure, un ottimizzatore di query piuttosto primitivo e difficile da decifrare/informazioni insufficienti per i piani di query (non sono disponibili piani per gli aggiornamenti/eliminazioni/inserimenti). Richiede indici su tutte le colonne di chiavi esterne che spesso generano così tanti indici inutili che si finisce semplicemente per non implementare affatto chiavi esterne per evitare un grave peggioramento delle prestazioni. Potrei andare avanti e avanti ... – Khorkrak
Twisted è una delle * più famose librerie Python. In che modo passare a progetti più oscuri può aiutare chiunque a "mettersi al lavoro" più velocemente? –