Ho un sacco di richieste Django che eseguono alcuni calcoli matematici (scritti in C ed eseguiti tramite un modulo Cython) che possono richiedere un ammontare indeterminato (dell'ordine di 1 secondo) di tempo per l'esecuzione. Inoltre le richieste non hanno bisogno di accedere al database e sono tutte indipendenti l'una dall'altra e Django.Elaborazione asincrona di Django
In questo momento tutto è sincrono (utilizzando Gunicorn con i tipi di lavoro sync
) ma vorrei rendere questo asincrono e non bloccante. Insomma mi piacerebbe fare qualcosa:
- mandare la richiesta AJAX
- Assegnare compito di un lavoratore a disposizione (senza bloccare l'applicazione principale web Django)
- Worker esegue compito in una certa quantità di tempo indeterminato
- Django restituisce il risultato del calcolo (una lista di stringhe) come JSON ogni volta che l'attività viene completata
sono molto nuovo per asincrono Django, e quindi la mia domanda è che cosa è la migliore pila fo sto facendo questo
Questo tipo di processo è adatto a una coda di attività? Qualcuno lo consiglierebbe Tornado + Celery + RabbitMQ, o forse qualcos'altro?
Grazie in anticipo!
Cosa si fa con i risultati dei calcoli? – sdolan
Restituisce il risultato (come JSON) al browser dell'utente. –