Python Django 的擴充應用:Django-Q 排程工具

Pei Lee
3 min readSep 29, 2017

--

在 2017 PyCon 看到 Jason 大大分享的工具 Django-Q,之前也在試 Djanqo 就摸了一下,剛好最近工作上有需要定期去資料庫抓資料,跑一些邏輯之後存到新資料庫的需求,因此想稍微整理一下。

要用 Django-Q 有一個非常非常非常重要的事,就是不要用 Windows 作業系統!之前試了大失敗,完全找不到解決方法,結果一改用 Linux 之後一切就迎刃而解了。

Django-Q 的安裝設定非常容易,覺得很 user-friendly:

  1. 安裝套件:
$ 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'
}

其他 broker 的設定方式

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 確認:

確定都有按照預計的時間顯示的話,應該就沒問題了。

--

--

Pei Lee
Pei Lee

Written by Pei Lee

Data Team Lead @ Retail & E-commerce Industry

No responses yet