celery例子实现定时发送邮件-创新互联

1、配置文件

在吴中等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都做网站 网站设计制作按需开发,公司网站建设,企业网站建设,品牌网站设计,全网营销推广,成都外贸网站建设,吴中网站建设费用合理。

vi setting.py

#coding:utf-8
import os
from datetime import  timedelta
BROKER_URL = 'redis://127.0.0.1:6379/13'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/14'
CELERY_TIMEZONE = 'Asia/Shanghai'
CELERY_ENABLE_UTC = True
CELERY_TASK_SERIALIZER = 'json' # 任务序列化和反序列化使用msgpack方案
#
CELERY_RESULT_SERIALIZER = 'json' # 读取任务结果一般性能要求不高,所以使用了可读性更好的JSON
#
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # 任务过期时间,不建议直接写86400,应该让这样的magic数字表述更明显

CELERY_ACCEPT_CONTENT = ['json'] # 指定接受的内容类型
CELERYBEAT_SCHEDULE = {

    'send_mail': {

        'task': 'celery_test.tasks.send_mail',

       'schedule': timedelta(seconds=10),

    }
}

2、函数模块

vi tasks.py

#coding:utf-8
from server import app
import random,string,smtplib
@app.task
def send_mail():
        SUBJECT="临时登录密码"
        HOST="smtp.163.com"
        # TO=mail
        TO='456@qq.com'
        FROM="123@163.com"
        text=str(random.randint(1000,9999))
        BODY=string.join((

        "From:%s"%FROM,

        "To:%s"%TO,

        "Subject:%s"%SUBJECT,

        "",text),"\r\n")

        server=smtplib.SMTP(HOST)

        server.login("123@qq.com","第三方发送验证码")

        server.sendmail(FROM,[TO],BODY)
        server.quit()
        return True

3、启动模块

vi server.py

from  celery import Celery
app=Celery('celery_test',include=['celery_test.tasks'])
app.config_from_object('celery_test.setting')

if __name__=='__main__':
    app.start()

4、启动worker,执行任务

celery -A celery_test.server worker -l info

5、启动beat,生成任务

celery -A celery_test.server beat

6、目录结构

celery_test/{server.py,setting.py,tasks.py}

celery例子实现定时发送邮件

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:celery例子实现定时发送邮件-创新互联
文章来源:http://myzitong.com/article/jdipi.html