2015-05-28 29 views
1

我想在Django中創建一個Web應用程序,該應用程序每天早上9點檢查一些市場數據併爲用戶解釋它們。Django中的定期服務器查詢

現在,它應該如何以最優雅的方式完成?我應該爲它創建一個單獨的應用程序,它與主應用程序使用共享數據庫?或者,也許在主應用程序中嵌入它?

回答

1

這不是一個很好的問題在這個網站,因爲它的方式太開放,無法正確回答。

但是我會試着給你一些指導,以便讓你更多地研究這個話題。有來實現您的要求兩種方式(實際上有更多的,但是我覺得這兩個是實現在Django應用程序的任務調度的最佳途徑):

  1. 創建自定義管理(管理)命令: https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/並每天通過crontab調用它(或者如果您使用windows,則是一個計劃任務)。

  2. 使用異步任務隊列(如celery或django-rq)及其任務調度程序(芹菜節拍或rq調度程序)來調度您的任務。

對於使用自定義管理命令是最好的解決方案簡單的情況下 - 使用異步任務隊列是複雜的,並增加了一些運動部件到您的項目(閱讀我的文章@http://spapas.github.io/2015/01/27/async-tasks-with-django-rq/一個簡單介紹Django的RQ) - 然而,與異步任務隊列集成爲您提供了更多的可能性和自由。