标签: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