在 2017 PyCon 看到 Jason 大大分享的工具 Django-Q,之前也在試 Djanqo 就摸了一下,剛好最近工作上有需要定期去資料庫抓資料,跑一些邏輯之後存到新資料庫的需求,因此想稍微整理一下。
要用 Django-Q 有一個非常非常非常重要的事,就是不要用 Windows 作業系統!之前試了大失敗,完全找不到解決方法,結果一改用 Linux 之後一切就迎刃而解了。
Django-Q 的安裝設定非常容易,覺得很 user-friendly:
- 安裝套件:
$ pip install django-q
2. 在已建好的 project 中編輯 settings.py,把 django-q 放進去 APP :
INSTALLED_APPS = (
# other apps
'django_q',
)
3.
$ python manage.py migrate
4. 編輯 settings.py,設定 broker,加入:
Q_CLUSTER = {
'name': 'DjangORM',
'workers': 1,
'timeout': 1800,
'retry': 120,
'queue_limit': 50,
'bulk': 10,
'orm': 'default'
}
5.
$ python manage.py qcluster
6. run server:
$ python manage.py runserver
7. 在瀏覽器輸入:
localhost:8000/admin
照理說就能看到 Django Q 的畫面了。
8. 新建一個 APP:
$ python manage.py startapp crawler
9. 新增一個 tasks.py 編輯,把要執行的 code 打上去。
10. 在瀏覽器中的 Scheduled tasks Add 一個任務,在 Func 那欄打上:(APP Name).tasks.(Function Name),再把時間設定好就可以順利執行囉。
11. 在打過 python manage.py qcluster 指令的 console 確認:
確定都有按照預計的時間顯示的話,應該就沒問題了。