Celery学习--- Celery操作之定时任务
学习 操作 --- 任务 定时 Celery
2023-09-11 14:20:11 时间
celery支持定时任务,设定好任务的执行时间,celery就会定时自动帮你执行, 这个定时任务模块叫celery beat
文件定时执行任务
项目前提: 安装并启动Redis
celery_Schedule.py
# version: python3.2.5 # author: ‘lft415659‘ from celery import Celery from celery.schedules import crontab # 可以实现复杂的定时任务 app = Celery('CelerySchedule', # redis://:password@hostname:port/db_number 有密码认证的连接 broker='redis://192.168.2.105', # broker='redis://:密码@192.168.2.105:6379/0', backend='redis://192.168.2.105', # 用于Celery的返回结果的接收 ) # 创建定时任务 @app.on_after_configure.connect # 启动程序连接上celery后自动执行这个函数生成定时任务 def setup_periodic_tasks(sender, **kwargs): # 第一次参数必须是sender,是定时任务的一个实例 # Calls test('hello') every 10 seconds. 这里的test是我们自定义的函数 sender.add_periodic_task(10.0, test.s('hello'), name='add every 10') # Calls test('world') every 30 seconds sender.add_periodic_task(30.0, test.s('world'), expires=10) # Executes every Monday morning at 7:30 a.m. 更复杂的定时任务 sender.add_periodic_task( crontab(hour=7, minute=30, day_of_week=1), test.s('Happy Mondays!'), ) @app.task def test(arg): print('run task:', arg)
后台启动Celery的worker任务:
omc@omc-virtual-machine:~$ cd Celery omc@omc-virtual-machine:~/Celery$ vim celery_Schedule.py omc@omc-virtual-machine:~/Celery$ celery -A celery_Schedule worker -l info
启动定时任务调度器[celery beat]
omc@omc-virtual-machine:~/Celery$ celery -A celery_Schedule beat
更复杂的定时任务
上面的定时任务比较简单,只是每多少s执行一个任务,但如果你想要每周一三五的早上8点给你发邮件怎么办呢?哈,其实也简单,用crontab功能,跟linux自带的crontab功能是一样的,可以个性化定制任务执行时间
【linux crontab】http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html
【更多参考】http://www.cnblogs.com/alex3714/articles/6351797.html
from celery.schedules import crontab app.conf.beat_schedule = { # Executes every Monday morning at 7:30 a.m. 'add-every-monday-morning': { 'task': 'tasks.add', 'schedule': crontab(hour=7, minute=30, day_of_week=1), 'args': (16, 16), }, }
像配置文件一样定时执行任务【用的比较少】
app.conf.beat_schedule = { 'add-every-30-seconds': { 'task': 'tasks.add', 'schedule': 30.0, 'args': (16, 16) }, } app.conf.timezone = 'UTC'
相关文章
- 80%的人都没看过的【软件测试】零基础到精通完整版学习路线+资料包
- (《机器学习》完整版系列)第16章 强化学习——16.8 异策略蒙特卡罗强化学习算法(换分布)
- Gremlin学习--边的遍历操作
- Spring学习-5-JdbcTemplate数据库操作
- 【python学习】Day1打卡-20210425
- Android 学习笔记进阶14之像素操作
- Android学习笔记进阶14之像素操作
- 大数据学习——hive数仓DML和DDL操作
- 大数据学习——hdfs客户端操作
- Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select
- 2. Spring Boot学习——Yaml等配置文件教程
- AI学习---数据IO操作&神经网络基础
- Redis学习---Redis的免密操作
- Redis学习---Redis操作之有序集合
- Redis学习---Redis操作之Set
- Redis学习---Redis操作之Hash
- Redis学习---Redis操作之String
- Python学习---django下的Session操作 180205
- Mysql学习---基础操作学习2
- Python学习---文件操作的学习1208
- Java学习---连接数据库操作
- 《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <三> NSArray
- 【python学习】——获取桌面路径,获取系统盘符,获取电脑用户名,获取软件自启动存放目录
- Python入门学习笔记第四章——操作列表~~~