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__可以没有,如果是包一定要有 │ ├ ...
随机推荐
- ajax实现异步请求模态登陆
ajax实现模态登陆 j2ee课程项目实现 Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创 ...
- TMS320F28335——SPI使用笔记
一.SPI硬件接口 GPIO54 ------- SPISIMOA GPIO55 ------- SPISOMIA GPIO56 ------- SPCLK GPI ...
- 使用 ELK 来分析你的支付宝账单
ELK 即 elasticsearch, logstash 以及 kibana.Elasticsearch 是一个基于 lucene 的分布式搜索引擎,logstash 是一种日志传输工具,也可以对日 ...
- ECMAScrip5 二
一.ES5的严格模式 在严格模式下,声明变量必须使用 var 在严格模式下,不能使用八进制 在严格模式下,不能使用arguments.callee 在严格模式下,不能使用eval() //eva ...
- [七月挑选]树莓派Raspberrypi上配置Git
title: 树莓派Raspberrypi上配置Git 树莓派Raspberrypi上配置Git. 开始 首先你得有一树莓派!!! 过程 查看自己树莓派的版本 pi@raspberrypi:~ $ u ...
- Apache 的 http-default.conf 详解
##Apache 默认设置文件 Timeout 300 #设置服务器在断定请求失败前等待的秒数.默认值 300 KeepAlive Off #设置是否启用 HTTP 持久链接,On ...
- man diff
DIFF(1) GNU Tools DIFF(1) NAME/名称 diff - ...
- Kibana后台进程启动和关闭
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12073202.html 后台启动Kibana ./bin/kibana & 查找Kibana进 ...
- LeetCode--142--环形链表II(python)
给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 - ...
- delphi exec error 错误处理
有时引用了三方jar后报错 [Exec Error] The command "PATH ..."" exited with code 1 解决方法 1.检测jar文件路 ...