2013-08-19 16 views
5

Qualcuno può dirmi se Celery esegue un'attività in una discussione o in un processo secondario separato? La documentazione non sembra spiegarlo (leggi 3 volte). Se si tratta di un thread, come ottiene il GIL (in particolare chi e come viene notificato un evento)?Il thread o il processo apply_async di sedano?

Come si può confrontare il asincrono di sedano con il modello del reattore di Twisted? Dopo tutto, il sedano usa il modello del reattore?

Grazie,

risposta

2

-c e -P sono le opzioni relative concorrenza per lavoratore sedano.

 
    -c CONCURRENCY, --concurrency=CONCURRENCY 
         Number of child processes processing the queue. The 
         default is the number of CPUs available on your 
         system. 
    -P POOL_CLS, --pool=POOL_CLS 
         Pool implementation: processes (default), eventlet, 
         gevent, solo or threads. 

utilizzando eventlet: http://docs.celeryproject.org/en/latest/userguide/concurrency/eventlet.html#enabling-eventlet

http://docs.celeryproject.org/en/latest/internals/reference/celery.concurrency.processes.html

3

Qualcuno può dirmi se sedano esegue un compito in un thread o in un processo figlio separata?

Né, l'attività verrà eseguita in un processo separato possibilmente su una macchina diversa. Non è un processo secondario del thread in cui si chiama "delay". Le opzioni -C e -P controllano il modo in cui il processo worker gestisce il proprio threading. I processi di lavoro ottengono attività attraverso un servizio di messaggi che è anche completamente indipendente.

Come si può confrontare il asincrono di sedano con il modello di reattore di Twisted? Dopo tutto, è il sedano utilizzando il modello di reattore?

Twisted è una coda di eventi. È asincrono ma non è progettato per l'elaborazione parallela.

Problemi correlati