首页 > 其他分享 >celery实现异步任务、定时任务和延迟任务

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

时间:2024-01-29 19:24:30浏览次数:28  
标签:异步 task timedelta beat datetime 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

标签:异步,task,timedelta,beat,datetime,celery,任务
From: https://www.cnblogs.com/wellplayed/p/17995152

相关文章

  • luffy_09 celery+1
    前倾回顾:#1redis是什么非关系型数据库(存数据)key-value形式存储5大数据类型:字符串,hash,列表,集合,有序集合纯内存存储#2为什么这么快?-纯内存-io多路复用网络模型-数据操作单线程,避免了线程切换#3python链接redis......
  • celery的快速使用
    celery的快速使用1.安装celery模块pipinstallcelery 2.书写demo.py文件fromceleryimportCeleryimporttimebroker='redis://127.0.0.1:6379/1'backend='redis://127.0.0.1:6379/2'app=Celery('app',broker=broker,backend=backend)......
  • 奇富科技:大数据任务从诊断到自愈的实践之路
    一、为什么要做诊断引擎毓数平台是奇富科技公司自主研发的一站式大数据管理、开发、分析平台,覆盖大数据资产管理、数据开发及任务调度、自助分析及可视化、统一指标管理等多个数据生命周期流程,让用户使用数据的同时,挖掘数据最大的价值。而毓数平台的大数据任务调度底层是基于Apac......
  • 【Celery】异步任务框架入门使用
    背景.项目中需要用到后台数据爬取更新的功能,同步做起来web页面毫无用户体验可言。使用celery异步任务框架来解决这个问题简单、高效。用了一段时间比较稳定,现在有空梳理下文档。简介Celery是一个强大的分布式任务队列系统,它允许你将工作以异步的方式排队执行,这对于执行耗时......
  • 异步 ApllicationContext pushlishEvent @EventLisener来处理
    importorg.springframework.context.ApplicationContext;importorg.springframework.context.ApplicationEvent;importorg.springframework.context.event.ApplicationEventMulticaster;importorg.springframework.core.task.AsyncTaskExecutor;@Component publi......
  • 使用Redis实现多节点任务调度
    1.目的目前中有部分功能需要定时更新或者推送数据,但正式环境存在多个server运行,会导致定时任务在多台服务器或者多个server同时运行。解决思路1:可以使用一台固定的服务器的一个节点单独部署定时任务的程序。解决思路2:多节点调度时,使用Redis锁来实现只有一个节点单独执行。结......
  • 给你一颗“定心丸”——记一次由线上事故引发的Log4j2日志异步打印优化分析
    一、内容提要自知是人外有人,天外有天,相信对于Log4j2的异步日志打印早有老师或者同学已是熟稔于心,优化配置更是信手拈来,为了防止我在这里啰里八嗦的班门弄斧,我先将谜底在此公布:log4j2.asyncQueueFullPolicy=Discard&log4j2.discardThreshold=ERROR,这两个Log4j2配置在强依赖的RPC......
  • linux 每2个小时执行定时任务
    [root@localhost~]#crontab-l0*/2***sh/home/data-integration/run_logintop.sh0*/2***sh/home/data-integration/run_stationtj.sh[root@localhost~]#cat/home/data-integration/run_logintop.sh#!/bin/bashcd/home/data-integrationnohup......
  • 共性化异步任务处理方案
    背景考虑到现有业务很多依赖于MQ的方式进行,这种方式需要依赖于MQ,发送消息到mq和消费mq消息时需要了解mq消息结构进行相应处理;对于后续对同样的事件做其他处理的人如不能提前了解到已有相应消息发到了mq就得再发一次消息到mq等。图1......
  • tmux使用教程:终端神器tmux:多任务管理大师
    文字版教程:阮一峰Tmux使用教程视频教程:终端神器tmux:多任务管理大师......