zoukankan      html  css  js  c++  java
  • django中设置定时任务

    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'),
    ]
    
    • 任务队列是一个列表,里面的每个元祖元素都是一个任务对象,
    • 任务对象的的第一个参数为执行时间,00 10 * * *是每天10点执行
      # crontab范例
      # 每五分钟执行    */5 * * * *
      # 每小时执行      0 * * * *
      # 每天执行        0 0 * * *
      # 每周执行        0 0 * * 0
      # 每月执行        0 0 1 * *
      
    • 第二个参数为任务函数的路径
    • 第三个为log的位置

    操作任务

    • 添加任务python manage.py crontab add
    • 查看任务python manage.py crontab show
    • 删除任务python manage.py crontab remove

    celery版本:https://zhuanlan.zhihu.com/p/112933211

  • 相关阅读:
    我们可以用SharePoint做什么
    HTML <!DOCTYPE> 标签
    一种支持任意尺寸的图片滑动(上下左右滑动)效果
    CSS选择器
    用css截取字符 css排版隐藏溢出文本
    Web前端行业的了解
    java07课堂作业
    设计模式原型模式
    设计模式建造者
    设计模式抽象工厂
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/11695551.html
Copyright © 2011-2022 走看看