Mi dispiace rispondere a una vecchia domanda, ma mi sono imbattuto in questo e mi sono chiesto perché non aveva più risposte. Per rispondere alla domanda di Bart J:
I would like to parse RSS feeds in the Tornado application. Would you consider that fairly computationally intensive?
Beh, questo dipende da che tipo di analisi che si sta facendo e su quale hardware :) Molto tempo è lungo tempo, quindi se la vostra applicazione richiede più che dire mezzo secondo di rispondere , sembrerà pigro - profila la tua app.
La chiave per i sistemi veloci è una grande architettura, non tanto le specifiche come ad esempio il framework che si sta utilizzando (Twisted, Tornado, Apache + PHP). Tornado ha uno stile di elaborazione asincrono e questo è davvero il motivo per cui a mio parere. Node.js, Twisted e Yaws sono esempi di altri server Web asincroni che si adattano molto bene a causa di un approccio leggero e uno stile di elaborazione asincrono.
Quindi:
When should Tornado be used?
When is it useless?
Tornado è un bene per la gestione di un sacco di connessioni, in quanto in grado di rispondere a un client in arrivo, inviare un gestore di richiesta e non pensare a quel cliente fino a quando il risultato-callback è spinto sulla coda degli eventi. Quindi, per quella specifica qualità, il Tornado dovrebbe essere usato quando si vuole scalare bene quando si gestiscono molte richieste. L'elaborazione asincrona facilita il disaccoppiamento funzionale e l'accesso ai dati non condivisi. Ciò si adatta molto bene con un design senza stato come REST o altri Service Oriented Architecture s. Inoltre, non è necessario gestire i thread oi processi di spawning con il sovraccarico inerente e si può risparmiare parte del problema di blocco/IPC.
Tornado non farà molta differenza, d'altra parte, se il back-end e/o l'archivio dati impiegano molto tempo per elaborare le richieste. Aiuta a fare progetti concorrenti e servizi Web in particolare. L'architettura simultanea rende più semplice scalare il design e mantenere basso l'accoppiamento. Questa è la mia esperienza con Tornado, almeno.
fonte
2012-09-17 22:40:10
Grazie per la risposta. Voglio solo chiarire alcuni punti: Posso usare Flask o Django bihind Tornado e ottenere tutti i suoi benefici (se non eseguo attività camputazionali) senza modificare il codice dell'applicazione? –
Se sì - quale sarà la differenza rispetto all'esecuzione di dire con flup? Grazie. –
Vorrei analizzare i feed RSS nell'applicazione Tornado. Lo considereresti abbastanza intenso dal punto di vista computazionale? –