赞
踩
首先定义一个定时任务函数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>
附:项目tasks.py,实际使用中,需根据自己情况编码
- # 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 '无需发送短信'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。