django 的計劃crontab 常見用法

首先需要安裝:

pip3 install django-crontab

在app的setting文件中加入:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'TestModel',
    ##add------
    'django_crontab', 
]

添加cron.py,內容如下:

def socron():
    print('-----test-----')

在app的setting文件中加入:

# 1. 中文亂碼
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
# 2. 每項工作執行後你想要做的事情 --直譯
CRONTAB_COMMAND_SUFFIX = '2>&1'
# 3. 添加定時任務(函數中的輸出語句,是輸出在.log文件中的)
CRONJOBS = (
    ('*/1 * * * *', 'cron.socron',
     '>> %s/cronlog.log' % os.path.join(BASE_DIR, 'logs')),
)

此時打開系統的crontab -e ,會看到下面一條任務,所以這是python對系統crontab的調用。

*/1 * * * * LANG_ALL=zh_cn.UTF-8 /home/python/python3.8/bin/python3 /python/helloworld/manage.py crontab run ce27d21fce854205c4969f3d28e63361 >> /python/helloworld/logs/cronlog.log 2>&1 # django-cronjobs for helloworld

我在實際使用時遇到了一個問題,就是我在引入數據庫相關模塊時,單獨使用python cron.py這個模塊會報錯,提示無法找到那個模塊。不清楚是路徑的問題還是寫法不對。

但是app在運行中時,這種寫法就不會出錯。所以這可能算是使用django-crontab的好處了吧。

關於cron的更具體的用法,大家可以看我另一篇博文,裏面是一個定時去監測端口然後改變數據庫中的項目狀態的任務。

https://blog.csdn.net/jeccisnd/article/details/103631865

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章