django中設置定時任務
在django中設置定時任務我們可以借用django-crontab
這個第三包來實現
django-crontab
只能在linux系統下使用
- 安裝:
pip install django-crontab
- 將django_crontab注冊到install app中
- 編寫你的定時任務函數(我的是編寫一個發送郵件的任務函數)
from django.core.mail import send_mail
from django.conf import settings
from django.template.loader import render_to_string
from task.models import Task
from django.contrib.auth.models import User
def send_task_email():
user_list = User.objects.filter()
for user in user_list:
tasks = Task.objects.filter(status=False, user=user)
if tasks:
html_message = render_to_string('task/task.html', {'tasks': tasks, 'user': user})
subject = '任務提醒'
message = ''
sender = settings.EMAIL_FROM
receiver = [user.email]
send_mail(subject, message, sender, receiver, html_message=html_message)
在settings中配置任務
CRONJOBS = [
('00 10 * * *', 'task.scheduled_task.send_task_email', '>>task.log'),
]
操作任務
- 添加任務
python manage.py crontab add
- 查看任務
python manage.py crontab show
- 刪除任務
python manage.py crontab remove
celery版本:https://zhuanlan.zhihu.com/p/112933211