2016-07-05 71 views
1

我已經想了幾天什麼是最好的辦法。我應該用django-celery遞歸更新我的數據庫嗎?

我正在銷售一件物品我正在製造 但是我所銷售的物品可以由其他物品 組成,其他物品可以由其他物品等組成。

後銷售訂單創建我想觸發過程中創造的所有建設此項目,它應該是某種遞歸所需要的物品的內部銷售訂單。不能產生

決賽項目有標誌is_production =假,所以我知道我沒有深究下去

在此,我想創造view.py的方法,將通過確認觸發我的銷售訂單。但是我擔心,由於我無法預測製造產品的複雜性,因此需要花費很長時間並且性能會很高。還有一個永不結束循環的風險。 所以可能在做這個看法是不是一個好主意,我在考慮替代和通過調查,我做了它應該與類似django芹菜

問題,因爲我從來沒有使用django芹菜,我想以確認我的理解: django芹菜是解決我的要求的最好和唯一的選擇?

+1

您可以使用基於Redis的Django RQ,並且配置起來要簡單得多http://stackoverflow.com/questions/38106696/django-rq-how-to-call-function/38106908#38106908 http:// python -rq.org/patterns/django/ – dmitryro

+0

但是Redis是DB和異步任務隊列/作業隊列? –

+0

Redis是輕量級的,它也可以並且應該被用作Django的緩存引擎。一旦你開始使用它,你會發現它非常有幫助。它用C編碼,所以它很快。 – dmitryro

回答

1

首先,關於應用程序設計問題:如你所說,「在視圖中這樣做是不是一個好主意」 ......一般你必須避免運行需要對請求 - 響應週期太多的時間過程,這對UX不利,並且可能會因請求被終止而中止,因爲某些層上的超時(比如數據庫事務超時,應用程序容器超時,反向代理超時等)。

我的建議:使用的東西(芹菜或任何其他解決方案),以卸載創建內部銷售訂單的過程中,和其他任何長期運行的進程(如發送電子郵件)。

二:要使用的框架?有這麼多的選擇,你將會需要研究的是:-)

三:永無止境的循環。你將不得不解決這個問題,無需使用設計。

相關問題