celery实现异步任务、定时任务和延迟任务

1.异步任务

任务名.delay(传参数)

2.延迟任务

from datetime import datetime, timedelta
# atetime.utcnow() 当前utc时间
# 当前时间+15秒
eta = datetime.utcnow() + timedelta(seconds=15)
# 取消订单任务
res = cancel_order.apply_async(args=['10001',], eta=eta) # 15s 后执行这个任务
print(res)

3 定时任务 —— 需要启动beat

3.1 在celery.py 中配置

# 时区
app.conf.timezone = 'Asia/Shanghai'
# 是否使用UTC
app.conf.enable_utc = False
# 任务的定时配置
from datetime import timedelta
from celery.schedules import crontab
app.conf.beat_schedule = {
'send_sms': {
'task': 'celery_task.user_task.send_sms',
'schedule': timedelta(seconds=3), # 每隔3s执行一次
# 'schedule': crontab(hour=8, day_of_week=1), # 每周一早八点
'args': ('1896388888', '6666'),
}
}

3.2 启动worker

celery -A celery_task worker -l info -P eventlet

3.3 启动beat

celery -A celery_task beat -l info
posted @   wellplayed  阅读(199)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示