我所需要的是在後臺運行,獨立於Web請求,不斷檢查特定表並執行一些計算。 「代理人」一詞似乎更適合這項任務,但我不確定這是否正確。在Django應用程序中實現代理的最佳方式
關於如何實現這個的任何想法或想法?發生在我身上的第一件事是腳本被cron調用,但我也不確定...
謝謝。
我所需要的是在後臺運行,獨立於Web請求,不斷檢查特定表並執行一些計算。 「代理人」一詞似乎更適合這項任務,但我不確定這是否正確。在Django應用程序中實現代理的最佳方式
關於如何實現這個的任何想法或想法?發生在我身上的第一件事是腳本被cron調用,但我也不確定...
謝謝。
這些天最流行的方式是使用某種類型的消息隊列,並使用像芹菜這樣的輔助庫。這樣做的方式是,你將有許多守護進程在偵聽消息隊列。在你的應用程序中,你將添加消息到隊列中,這些消息將被工作人員拾取。這很複雜,但速度很快。
但是,對我來說感覺就像完全適合您的應用程序。做事的方式要簡單得多,而且不那麼脆弱。它還可以更輕鬆地調試和測試代碼。
作爲一個異端的筆記,如果您的用例確實是「檢查某個特定表並執行一些計算進入某個其他表」,則可以使用數據庫觸發器來完成該工作。
我會考慮使用Cron tasks,但它取決於是否使用Unix或Windows系統。
Cron任務的主要優點是它只是運行一個腳本,無論使用何種語言。所以,你可以使用shell腳本,Python和PHP等
嘗試採取看看Celery:
芹菜是基於分佈式消息傳遞一個開源的異步任務隊列/作業隊列。它專注於實時操作,但也支持調度。
執行單元稱爲任務,在一個或多個工作節點上同時執行。任務可以異步執行(在後臺)或同步執行(等待直到準備就緒)。
只是爲了提供替代方案,django-command-extensions應用程序提供了一個非常有用的工作系統,尤其是在您有多個要運行的作業時。您仍然需要使用cron
來觸發作業。見docs