Celery定时任务|计划任务
适用场景几点几分执行特定的任务
定时任务
配置这个无需多说了和上篇文章一样
任务函数
硬菜来了 添加任务时候的写法
第一种:
from celery_task.order_task import order_add
from celery_task.user_task import user_add from datetime import datetime # 拼接得到执行任务的时间,得到的就是一个时间对象
v1 = datetime(2019, 7, 21, 16, 53, 00)
print('执行任务时间:', v1)
# 转化成utc时间
v2 = datetime.utcfromtimestamp(v1.timestamp())
print('执行任务的utc时间:', v2)
# 执行定时任务,调用apply_async,args是要传入的参数,eta是执行的时间
result = user_add.apply_async(args=[1, 3], eta=v2)
print(result.id)
这里面需要把时间转化成utc时区的时间,不然间隔十小时,自己推算即可
唯一变的就是传递参数的调用变成了apply_async(args=[参数,参数],eta=执行任务的时间)
worker日志
接收到任务到时间 16:52:17
任务执行完成的时间 16:53:02
任务耗时2秒
第二种
# 获取当前时间
ctime = datetime.now()
# 默认用utc时间,把当前时间转utc时间
utc_ctime = datetime.utcfromtimestamp(ctime.timestamp())
from datetime import timedelta # 这段意思是取十秒之后的时间对象,因为时间对象只能和时间对象相加
time_delay = timedelta(seconds=10)
# 最终的时间对象为当前时间后十秒
task_time = utc_ctime + time_delay
print('最终时间', task_time) # 使用apply_async并设定时间
result = user_add.apply_async(args=[4, 3], eta=task_time)
print(result.id)
打印信息
worker日志信息
执行计划任务
from datetime import timedelta
from celery.schedules import crontab APP.conf.beat_schedule = {
# 名字随意命名
'add-every-10-seconds': {
# 执行tasks1下的test_celery函数
'task': 'celery_task.tasks1.test_celery',
# 每隔2秒执行一次
# 'schedule': 1.0,
# 'schedule': crontab(minute="*/1"),
'schedule': timedelta(seconds=2),
# 传递参数
'args': ('参数', '参数')
},
'add-every-12-seconds': {
'task': 'celery_task.tasks1.test_celery',
# 每年4月11号,8点42分执行
'schedule': crontab(minute=42, hour=8, day_of_month=11, month_of_year=4),
'schedule': crontab(minute=42, hour=8, day_of_month=11, month_of_year=4),
'args': (16, 16)
},
}
启动一个beat自定提交任务:celery beat -A celery_tasks.tasks -l info
Celery定时任务|计划任务的更多相关文章
- celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)
一.celery简介: Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async tas ...
- celery 定时任务时间篇
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...
- celery 定时任务
用celery定时任务,定时删除文件夹 tasks.py from celery import Celery import os import shutil app = Celery('demo') ...
- Linux定时任务计划
Linux定时任务计划 在使用Linux系统时,我们有时会需要让系统在某个时间去执行特定的任务,这时就需要去了解Linux提供的定时任务功能 种类 Linux的定时任务分为两种:单一型和循环型 单一型 ...
- 将celery定时任务设置为根据本地时区触发
默认celery的时区为UTC,如果要在django项目中将celery定时任务配置为根据本地时区触发,则需要修改 在setttings.py 添加以下任意一行: # celery 相关配置 CELE ...
- Django Celery定时任务和时间设置
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: #coding:utf- from celery.task.schedules ...
- Bamboo Django Celery定时任务和时间设置
1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...
- celery 定时任务,使用crontab表达式不执行(版本4.3.x)
celery 定时任务,使用crontab表达式不执行(版本4.3.x) 在使用celery 执行定时任务时,发现任务不会执行,schedule设置如下: 经测试,如果去掉hour,则任务每分钟都会执 ...
- Celery定时任务细讲
Celery定时任务细讲 一.目录结构 任务所在目录 ├── celery_task # celery包 如果celery_task只是建了普通文件夹__init__可以没有,如果是包一定要有 │ ├ ...
随机推荐
- 理解 JavaScript 闭包
这是本系列的第 4 篇文章. 作为 JS 初学者,第一次接触闭包的概念是因为写出了类似下面的代码: for (var i = 0; i < helpText.length; i++) { var ...
- 流畅的Python (Fluent Python) —— 前言
本书重点: 这本书并不是一本完备的 Python 使用手册,而是会强调 Python 作为编程语言独有的特性,这些特性或者是只有 Python 才具备的,或者是在其他大众语言里很少见的. Python ...
- deletefile 与KILL
1.Kill 语句 从磁盘中删除文件.语法Kill pathname必要的 pathname 参数是用来指定一个文件名的字符串表达式.pathname 可以包含目录或文件夹.以及驱动器.说明在 Mic ...
- 实现自己的BeanFactory、AOP以及声明式事务
实现自己的BeanFactory 在使用spring时,我们很少用& ...
- Linux加载一个可执行程序并启动的过程
原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 以shell下 ...
- mysql5.7.26-忘记密码(CentOS为例)
编辑 my.cnf [mysqld]下插入 skip-grant-tables [root@VM_0_7_centos mysql]# vim /etc/my.cnf # For advice on ...
- zookeeper之一 安装和配置(单机+集群)
这里我以zookeeper3.4.10.tar.gz来演示安装,安装到/usr/local/soft目录下. 一.单机版配置 1.安装和配置 #.下载 wget http://apache.fayea ...
- CSP2019 前 随感
因为博主并没有任何的 oi 水平.文化课水平以及作文水平,下面的东西都是对辞藻和古诗词的堆砌. 不知不觉又到了新一年的 noip 了. 好像是去年的双十一的晚上,noip 考挂的我绝望地写了 bzoj ...
- 第一次接触oracle
登录 SQLPLUS cmd sqlplus [用户名]/[密码][@数据库] [参数] sqlplus sys/orcl as sysdba -- 登录 sys 用户,必须指定 sysdba 或 s ...
- namenode和datanode的高可用性和故障处理
一.Hadoop单点故障问题如何解决 Hadoop 1.0内核主要由两个分支组成:MapReduce和HDFS,众所周知,这两个系统的设计缺陷是单点故障,即MR的JobTracker和HDFS的Nam ...