标签:ack 组件 调度框架 答案 统一 调度 发送邮件 mail task

我们是在windows上进行演示,所以还需要eventlet这个任务调度框架,pip install eventlet即可
‘‘‘
tasks.py,存储任务
‘‘‘
from celery import Celery
import time
# main:当前的py文件名
# broker:中间人,比如redis,指定方式redis://:password@host:port/db,我们这里没有密码,直接redis://localhost:6379/0即可
# backend:结果存储的位置
celery = Celery(main="tasks", broker="redis://localhost:6379/0", backend="redis://localhost:6379/0")
# 创建任务,模拟发送邮件。
# 如何变成任务呢?只需要加上一个装饰器,就变成了一个任务
@celery.task
def send_mail():
print("邮件开始发送。。。。。")
time.sleep(3)
print("邮件发送结束。。。。。")
‘‘‘
main.py,运行任务
‘‘‘
from tasks import send_mail
import time
if __name__ == ‘__main__‘:
start = time.time()
# 这个时候不能直接执行send_mail(),而是要使用delay方法
send_mail.delay()
# 我们在tasks.py中定义的send_mail函数中,有time.sleep(5),但是send_mail.delay()是不会管的
# 会瞬间执行完毕
end = time.time()
print(end - start)


标签:ack 组件 调度框架 答案 统一 调度 发送邮件 mail task
原文地址:https://www.cnblogs.com/traditional/p/10211525.html