zoukankan      html  css  js  c++  java
  • celery完成简单的定时任务

    1、在Django中使用celery的定时任务需要安装django-celery-beat

    pip install django-celery-beat
    

    2、在Django的settings中注册django_celery_beat

    INSTALLED_APPS = (
        ...,
        'django_celery_beat',
    )
    

    3、执行创建表命令

    如果迁移不成功 报cerely_task的错误 那就把关于celery的导包全部放在方法里面

    python3 manage.py makemigrations
    python3 manage.py migrate
    

    4、在与项目同名的目录下的celery.py中添加定时任务

    app.conf.beat_schedule = {
        'add-every-5-seconds': {
            'task': 'celery_task.tasks.send_overtime',  #要执行的项目 或者也可以说执行的任务
            'schedule': 10.0,  #每十秒一执行
            'args': (16, 16)
        },
    }
    

    5、讲方法写入目录下的task方法中

    @app.task
    def send_overtime(start,end):
        send_mail(subject='工单超时',
                    message='jinwu提交的工单即将超时,请尽快审批',
                    from_email=settings.EMAIL_FROM,  # 发送者邮箱
                    recipient_list=['wangsai_python@163.com',],  # 接收者邮箱可以写多个
                    fail_silently=False)
        return random.randint(start,end)
    

    6、setting里面的配置

    # 配置邮件发送
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_HOST = 'smtp.163.com'  # 如果为163邮箱,设置为smtp.163.com
    EMAIL_PORT = 25  # 或者 465/587是设置了 SSL 加密方式
    # 发送邮件的邮箱
    EMAIL_HOST_USER = 'wangsai_python@163.com'
    # 在邮箱中设置的客户端授权密码
    EMAIL_HOST_PASSWORD = 'XNFDYDCJXIUDGOEX'  # 第三方登陆使用的授权密码
    EMAIL_USE_TLS = True  # 这里必须是 True,否则发送不成功
    # 收件人看到的发件人, 必须是一直且有效的
    EMAIL_FROM = 'hr<wangsai_python@163.com>'
    DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
    
  • 相关阅读:
    IIS: 必须输入密码手动设置密码同步后
    IIS操作控制类
    SQL对IP地址进行拆分
    HTTP_REFERER的工作方式[转贴]
    如何知道同服务器上都有哪些网站?
    简单判断临时表是否存在
    .NET 3.5 SP 1发布了
    Log Parser很好很强大的IIS日志分析工具
    遍历Request.ServerVariables
    06复杂查询(多数据库表)
  • 原文地址:https://www.cnblogs.com/wangxiaosai/p/14110823.html
Copyright © 2011-2022 走看看