有人能告訴我芹菜是在線程還是在單獨的子進程中執行任務嗎?該文檔似乎沒有解釋它(讀取它像3次)。如果它是一個線程,它是如何通過GIL(特別是通知誰以及如何通知事件的)?芹菜的apply_async線程或進程?
你會如何比較芹菜的異步與Twisted的反應堆模型?畢竟芹菜是使用反應堆模型?
感謝,
有人能告訴我芹菜是在線程還是在單獨的子進程中執行任務嗎?該文檔似乎沒有解釋它(讀取它像3次)。如果它是一個線程,它是如何通過GIL(特別是通知誰以及如何通知事件的)?芹菜的apply_async線程或進程?
你會如何比較芹菜的異步與Twisted的反應堆模型?畢竟芹菜是使用反應堆模型?
感謝,
-c和-P是芹菜工人併發相關的選項。
-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.
使用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
誰能告訴我是否芹菜在一個線程中或在 單獨的子進程來執行任務?
這兩個任務都不會在單獨的進程中執行,可能在不同的機器上執行。這不是你稱之爲「延遲」的線程的子進程。 -C和-P選項控制工作進程如何管理它自己的線程。工作進程通過一個完全獨立的消息服務來獲取任務。
如何將芹菜的異步與Twisted的反應堆模型進行比較?畢竟,使用反應堆模型的芹菜是 ?
Twisted是一個事件隊列。它是異步的,但不是爲並行處理而設計的。