django-crontab可以定時執行自定義命令和函式兩種方式,因為之前嘗試用command+crontab時已經實現了自定義command,所以自然而然使用了自定義命令這種形式。
我先參考django官方文件自定義了乙個命令aizhan_5domain_visits
,專門用於抓取愛站流量,並將結果儲存在sqlite3資料庫中(具體步驟在本文中不贅述了)。
其次,我在settings
.py中加入了django-crontab的命令:
cronjobs =[
('47 11 * * *'
,'django.core.management.call_command',[
'aizhan_5domain_visits'
]),]
意思就是每天11點47分執行aizhan_5domain_visits
這個命令。接下來就剩最後一步任務載入了。
django-crontab也可以定時執行函式,只是在cronjobs
配置時有差別。cronjobs
關於函式的配置如下:
cronjobs =(
# 初級模式
('*/5 * * * *',),
# 中級模式
('0 0 1 * *',,
'> /tmp/last_scheduled_job.log'
),#高階模式
('0 0 * * 0'
,'django.core.management.call_command',[
'dumpdata'
,'auth'],,
'> /home/john/backups/last_sunday_auth_backup.json'
),)
分析結果:
django-crontab任務載入比較簡單,只需要執行python manage
.py crontab add即可。如果你執行crontab
-e可以看到crontab中多了一行:
**
*/home/
aizhan
/bin
/python
/home
/aizhan
/aizhan
/manage
.py crontab run c27d1050fb7f87225bcff587ef5a35a3
# django-cronjobs for aizhan
這是django-crontab自動生成的。
通過crontab -l 可以看到生成的定時任務
Django crontab 定時任務
對於首頁的靜態化,考慮到頁面的資料可能由多名運營人員維護,並且經常變動,所以將其做成定時任務,即定時執行靜態化。在django執行定時任務,可以通過django crontab擴充套件來實現。pip install django crontab.django crontab 定時任務 在配置檔案中設...
Django crontab 定時執行任務
由於看到celery 外掛程式學習曲線較大,這個小的需求就使用django crontab 解決。pip install django crontab django crontab 到這裡基本沒有問題,接下來建立定時任務可以分成兩種,一種是執行自定義的mange.py的命令,另一種是執行自定義函式。...
Django crontab 的安裝與使用
django crontab是能讓 在後台自動執行定時任務的包,具體的文件在github上已經十分齊備,我只在它的基礎上進行補充說明。django crontab只能在linux下使用,詳情見部落格 pip install django crontab用pycharm的可以直接在file setti...