四、結束
五、參考
在官網上的說明:
dead ****** crontab powered job scheduling for django
英語不好的我只是認為crontab能給django提供乙個按照時間進行的作業排程的功能。
在做**的時候,往往需要在某個固定的時間點,或者某個固定的時間間隔自動的觸發乙個事件,進行一些操作。比如每個月的財務報表在月末的時候會自動生成,然後發乙個賬單到你的email中。
針對這個需求,我們就要使用crontab實現定時器的功能。
但是在django中實現定時器的工具有好幾種,我們使用crontab是因為它比較簡單,易於使用。
celery也可以實現這個功能,這裡就不討論了。
但是crontab有個缺點:
就是他不支援在windows使用。不過幸好博主就是在linux上開發的。
話不多說,開始使用crontab吧。
pip install django-crontab
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_crontab',
]def
task
():#定時任務
···同時要在setting.py中新增這個定時任務
cronjobs = [
# 每一分鐘執行一次
]
具體引數解釋:
前5個(*)星號:
特殊符號:
舉個列子:
每兩個小時 0 /2 * *晚上11點到早上8點之間每兩個小時,早上8點 0 23-7,8 * * *
每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點 0 11 4 * 1-3
1月1日早上4點 0 4 1 1 *
# 將任務新增並生效
python manage.py crontab add
# 顯示當前的定時任務
python manage.py crontab show
# 刪除所有定時任務
python manage.py crontab remove
# 只執行定時任務試一試
python manage.py crontab run
注意:當新增乙個定時任務後:
得到了乙個hash值,所以在進行run
的時候:
python manage.py crontab run 2fc2215151a785c33b28c74ad5feb636
就像git一樣
除此之外,要有檢視crontab的檔案的命令:corntab -e
執行這個專案就會定時觸發事件,執行你要的**了。
當然要是僅僅輸出一些東西,執行的時候是看不到的。
列印log,傳參等等這裡就不贅述了。如圖
定時器 tick 時間輪定時器學習筆記
參考自時間輪的原理和手錶的指標計時類似,將任務結束的時間加入對應最高端的時間輪轉盤中。例如任務結束時間為4 30 20,時間輪盤有三個,分別對應,小時,分鐘和秒。開始時將任務加入4小時所在的時間輪中。四小時過去後,任務的剩餘時間時間為0 30 20就將任務加入30分所在的時間輪中。30分鐘過去後,將...
Timer定時器學習筆記
timer定時器學習筆記 timer是jdk中提供的乙個定時器工具,使用的時候會在主線程之外起乙個單獨的執行緒執行指定的計畫任務,可以指定執行一次或者反覆執行多次。timertask是乙個實現了runnable介面的抽象類,代表乙個可以被timer執行的任務。timer定時器 演示 建立乙個定時器物...
Django 定時器 專案啟動後才執行定時器
在專案中用到了定時呼叫的問題,而且是在專案啟動後才執行的,我當時想的是用time.sleep,但是後來發現呼叫完time.sleep後,雖然定時器啟動成功了但是專案啟動不起來了,這樣就很尷尬了所以這種方法不行,瀏覽文件發如下方法可行 首先pip3 install apscheduler 2.1.2 ...