django項目中遇到要實現定時任務,所以選用了簡單易用的django-crontab插件。 1、安裝 django-crontab pip install django-crontab 2、定時要執行的腳本 先寫個簡單的測試腳本。crontab/crons.py import datetime d ...
django項目中遇到要實現定時任務,所以選用了簡單易用的django-crontab插件。
1、安裝 django-crontab
pip install django-crontab
2、定時要執行的腳本
先寫個簡單的測試腳本。
crontab/crons.py
import datetime
def update_stock_status():
start_time = datetime.datetime.now()
print(start_time, ", begin update_stock_status cron task...")
3、配置
在項目的配置文件 settings.py 中,加上下列信息:
# add django-crontab app
INSTALLED_APPS = [
...
'django_crontab',
]
# cron tasks
CRONJOBS = [
('*/5 * * * *', 'crontab.crons.update_stock_status', '>>' + os.path.join(BASE_DIR, 'logs/crons.log'))
]
"""
python3 manage.py crontab add 添加定時任務
python3 manage.py crontab remove 刪除定時任務
python3 manage.py crontab show 查看定時任務
* * * * * command
分鐘(0-59) 小時(0-23) 每個月的哪一天(1-31) 月份(1-12) 周幾(0-6) shell腳本或者命令
0 6 * * * commands >> /tmp/test.log # 每天早上6點執行, 並將信息追加到test.log中
"""
- crontab.crons.update_stock_status :crontab 表示目錄;crons 表示crons.py文件;update_stock_status 表示要執行的函數。
- ‘>>’ + os.path.join(BASE_DIR, ‘logs/crons.log’):表示把定時任務的日誌寫到crons.log 文件中。
4、啟動定時任務
# 其實是把定時任務寫入系統的 crontab 中,在系統中使用 crontab -l 可以看到
python manage.py crontab add
# 刪除定時任務
python manage.py crontab remove
# 查看定時任務
python manage.py crontab show