2013-08-19 37 views
5

Ai đó có thể cho tôi biết liệu Celery có thực hiện một nhiệm vụ trong một chủ đề hay trong một tiến trình con riêng không? Các tài liệu dường như không giải thích nó (đọc nó như 3 lần). Nếu nó là một chủ đề, làm thế nào nó có thể vượt qua GIL (đặc biệt là ai và làm thế nào một sự kiện được thông báo)?Quy trình hoặc quy trình apply_async có cần thiết không?

Bạn so sánh mô hình lò phản ứng của Twisted với mô hình lò phản ứng của Twisted như thế nào? Có cần tây sử dụng mô hình lò phản ứng sau khi tất cả?

Xin cảm ơn,

Trả lời

2

-c và -P là các tùy chọn liên quan đến đồng thời cho công nhân cần tây.

 
    -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. 

sử dụng 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

Ai đó có thể cho tôi biết liệu cần tây thực hiện một nhiệm vụ trong một thread hoặc trong một quá trình con riêng ?

Không, nhiệm vụ sẽ được thực hiện trong một quá trình riêng biệt có thể trên một máy khác. Nó không phải là một tiến trình con của luồng mà bạn gọi là 'trì hoãn'. Các tùy chọn -C và -P kiểm soát cách thức quy trình công nhân quản lý luồng riêng của nó. Các quy trình công nhân nhận nhiệm vụ thông qua một dịch vụ tin nhắn cũng hoàn toàn độc lập.

Bạn so sánh mô hình lò phản ứng của Twistery với mô hình lò phản ứng của Twisted như thế nào? Có phải cần tây sử dụng mô hình lò phản ứng sau khi tất cả?

Xoắn là hàng đợi sự kiện. Nó không đồng bộ nhưng nó không được thiết kế để xử lý song song.

Các vấn đề liên quan