Domanda

Per molto tempo ho voluto iniziare un progetto per animali domestici che mirerà a tempo di diventare un pannello di controllo di web hosting, ma principalmente focalizzato sull'hosting Python - significa che vorrei creare un modo per gli utenti di generare / avviare Django / altri progetti di quadri direttamente dal pannello. Mi sembrava di averlo ho trovato lo strumento perfetto per costruire la mia app: CherryPy.

Questo mi permetterebbe di farlo come voglio, costruendo l'app con il suo HTTP / Server HTTPS e anche tutti nel mio linguaggio di programmazione preferito.

Ma ora sorge una nuova domanda: poiché CherryPy è un server threaded, lo farà è giusto per questo tipo di attività?

Ci saranno molte attività che richiedono tempo, quindi se uno dei blocchi di attività, il resto degli utenti che tentano di accedere ad altre pagine lo faranno essere lasciato in attesa ed eventualmente essere scaduto.

Immagino che questo tipo di problema non si verifichi su un server basato su fork.

Cosa consiglieresti?

È stato utile?

Soluzione

" filettato " e "a forcella" i server sono equivalenti. Un "filettato" il server ha più thread di esecuzione e se uno blocca, gli altri continueranno. A "a forcella" il server ha più processi in esecuzione e se uno si blocca, gli altri continueranno. L'unica differenza è che i server threaded per impostazione predefinita condivideranno la memoria tra i thread, "fork based" quelli di default non condivideranno la memoria.

Un altro punto: il "sottoprocesso" Il modulo non è thread-safe, quindi se provi ad usarlo da CherryPy otterrai errori strani. (Questo è Python Bug 1731717 )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top