1. 多任务
celery.py
from celery import Celery
cel = Celery('celery_demos',
broker='redis://127.0.0.1:6379/1'
,backend='redis://127.0.0.1:6379/2'
,include=['celery_tasks.task01','celery_tasks.task02']) #把所有异步任务对应的模块放在列表中
# 时区
cel.conf.timezone = 'Asia/Shanghai'
# 是否UTC
cel.conf.enable_utc = False
这里-A是在根目录下程序package的名字
celery -A celery_tasks worker -l info -P eventlet -c 10
2. 定时任务
在生产者调用celery实例时不用delay方法而是 apply_async方法
2.1 固定时间
v1 = datetime(2022,4,21,7,57,20)
print(v1)
v2 =datetime.utcfromtimestamp(v1.timestamp())
print(v2)
result = send_mail.apply_async(args=['time',],eta=v2)
print(result.id)
同时产生id
定时任务20s才开始
2.2 相对时间
当前时间延迟10s执行
ctime = datetime.now()
utc_time =datetime.utcfromtimestamp(ctime.timestamp())
time_delay = timedelta(seconds=10)
task_time = utc_time+time_delay
result = send_mail.apply_async(args=['相对时间',],eta=task_time)
print(result.id)