首先定义一个定时任务函数tasks.py(见文章末尾示例),编写函数,然后在setting.py中配置定时任务
1、首先安装django-crontab
pip install django-crontab
2、在setting.py中添加应用 (在所有自定义注册app之上)
INSTALLED_APPS = [
...
'django_crontab',
]
在项目根路径setting.py中设置定时任务
# 定时任务
CRONJOBS = [
# 每分钟发送一条通知
# app:为应用名,cron为py文件名,inform为文件中的函数
('0 12 * * *', 'GuaranteeCommitmentLetter.tasks.Dacheck_and_send_email'), # 每天12点执行
('0 12 * * *', 'GuaranteeCommitmentLetter.tasks.Macheck_and_send_email'),
('0 12 * * *', 'GuaranteeCommitmentLetter.tasks.Macheck_and_send_dingtalk'),
('0 12 * * *', 'GuaranteeCommitmentLetter.tasks.Dacheck_and_send_dingtalk'),
('0 12 * * *', 'GuaranteeCommitmentLetter.tasks.Macheck_and_send_mas'),
]
3、非英文字符处理,在setting.py中加入这行
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
4、开启定时任务
python manage.py crontab add
5、查看定时任务
python manage.py crontab show
6、删除定时任务
python manage.py crontab remove
7、直接运行定时任务,任务id在你add的时候前面有一个哈希的id
python manage.py crontab run <任务id>
文章来源:https://www.toymoban.com/news/detail-848151.html
附:项目tasks.py,实际使用中,需根据自己情况编码文章来源地址https://www.toymoban.com/news/detail-848151.html
# tasks.py
import datetime
import base64
import hashlib
import json
import urllib3
import requests
from django.core.mail import send_mail
import GovernmentManagement.settings
from GuaranteeCommitmentLetter.models import MunicipalGuaranteeCommitmentLetter, DistrictGuaranteeCommitmentLetterAudit
def Macheck_and_send_email():
unit_company = MunicipalGuaranteeCommitmentLetter.objects.filter(guarantee_time__lt=datetime.datetime.now(), audit_status=0)
user_email = {}
for i in unit_company: # 获取company_name字段的值
user_email[i.company_name] = i.user_email # 获取email字段的值
system_name = {}
for i in unit_company: # 获取company_name字段的值
system_name[i.company_name] = i.system_name # 获取email字段的值
if unit_company:
for i in unit_company:
# 发送邮件
subject = '标题'
message = 内容
from_email = GovernmentManagement.settings.EMAIL_HOST_USER
recipient_list = [user_email[i.company_name]]
send_mail(subject, message, from_email, recipient_list) # 发送邮件
return '邮件发送成功'
else:
return '无需发送邮件'
return '无需发送短信'
到了这里,关于Django项目定时任务django-crontab的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!