2015-12-10 77 views
1

有一個Django應用程序,通過celery + kombu + Oracle運行定期任務。我花了一些時間,直到注意到要更改芹菜工作者需要重新啓動的任務代碼,而不是Django服務器(uWSGI)。芹菜在哪裏存儲任務功能?

問題是,芹菜在哪裏存儲代碼?某種緩存或什麼?

回答

0

Celery系統由1個或多個(通常是python)進程組成,這些進程將您的方法/任務加載到內存中。

這與啓動交互式shell相同。如果你這樣做:

>>> from spam import eggs 

eggs將被分配到一個內存插槽。如果你編輯欄,你將不得不重新啓動shell來查看更改。

2

Celery運行幾個工作進程,與django服務器進程分開。 這些進程將python代碼加載到內存中並執行它。他們繼續奔跑直到關閉。 如果更新磁盤上的python代碼,更改將不會被正在運行的進程拾取 - 您需要重新啓動它們。