Celery

发布时间 2023-06-29 21:40:29作者: 刹爵

celery执行异步任务,延迟任务和定时任务

执行异步任务

    -导入异步任务的函数
    -函数.delay(参数)

执行延迟任务

from datetime import datetime, timedelta

eta = datetime.utcnow() + timedelta(seconds=10)
导入异步任务的函数
函数.apply_async(args=['122345421', 4444], eta=eta)
函数.apply_async(kwargs={'mobile':'1896334234','code':8888},eta=时间对象)

执行定时任务:在app所在的文件下配置

# 1 配置
app.conf.beat_schedule = {
        'send_sms': {
            'task': 'celery_task.user_task.send_sms',
            'schedule': timedelta(seconds=5),
            'args': ('1822344343', 8888),
        },
        'add_course': {
            'task': 'celery_task.course_task.add_course',
            # 'schedule': crontab(hour=8, day_of_week=1),  # 每周一早八点
            'schedule': crontab(hour=11, minute=38),  # 每天11点35,执行
            'args': (),
        }
    }
# 2 启动beat,启动worker
    celery  -A 包名 beat -l info 
    celery -A 包名 worker -l info -P eventlet

详细使用方式>>>>刘sir