Celery定时任务细讲

一.目录结构

任务所在目录
├── celery_task # celery包 如果celery_task只是建了普通文件夹__init__可以没有,如果是包一定要有
│ ├── __init__.py # 包文件 看情况要不要存在
│ ├── celery.py # celery连接和配置相关文件,且名字必须交celery.py,其实也不是必须的不然你指令可能要修改
│ └── tasks.py # 所有任务函数

二.配置

celery.py

from celery import Celery

#创建一个Celery对象
broker = 'redis://127.0.0.1:6379/2' #任务放在用redis://ip:端口/第几个数据库
backend = 'redis://127.0.0.1:6379/3' #任务结果放在
include = ['celery_task.tasks',] #任务所在目录
app = Celery(broker=broker, backend=backend, include=include) app.conf.timezone = 'Asia/Shanghai' #配置时区
app.conf.enable_utc = False # 是否使用UTC from datetime import timedelta
from celery.schedules import crontab
app.conf.beat_schedule = {
#任务名称自定义可随意
'get_banner-task': {
'task': 'celery_task.tasks.get_baidu_info',#任务所在路径且指定哪个任务
'schedule': crontab(hour=3,minute=0), #定时任务相关
},
}

celery.py

from .celery import app
import requests
@app.task #一定要加装饰器
def get_baidu_info():
response = requests.get(https://www.baidu.com/')
return response.text

三.配置参数

配置参数的方式

方式一

app.conf.参数名称=参数值

方法二

app.conf.update(
参数名称=参数值,
参数名称=参数值
)

方法三

导入配置文件

app.config_from_object('配置文件路径')

配置文件

参数名称=参数值
参数名称=参数值

一.时区配置

常用中国

app.conf.timezone = 'Asia/Shanghai'
app.conf.enable_utc = False
#也可以直接设置
app.conf.timezone = 'Asia/Shanghai'

国际时间

app.conf.enable_utc = True
app.conf.timezone = 'Europe/London'
#也可以直接设置
app.conf.timezone = 'Europe/London'

二.beat_schedule

  • task: 指定任务的名字
  • schedule : 设定任务的调度方式,可以是一个表示秒的整数,也可以是一个 timedelta 对象,或者是一个 crontab 对象(后面介绍),总之就是设定任务如何重复执行
  • args: 任务的位置参数以列表的形式
  • kwargs:任务的关键字参数,以字典的形式
  • options:所有 apply_async 所支持的参数

timedelta 对象

from datetime import timedelta

 'schedule': timedelta(seconds=3), #每三秒 执行一次 其他想想就知道啦
#具体有啥参数我也不想列举了你ctrl+左键进入timedelta源码自己看就知道啦

crontab 对象

#schedule配置举例
from celery.schedules import crontab
# 每分钟执行一次
crontab() # 每天凌晨十二点执行
crontab(minute=0, hour=0) # 每十五分钟执行一次
crontab(minute='*/15') # 每周日的每一分钟执行一次
crontab(minute='*',hour='*', day_of_week='sun') # 每周三,五的三点,七点和二十二点没十分钟执行一次
crontab(minute='*/10',hour='3,17,22', day_of_week='thu,fri')

Celery定时任务细讲的更多相关文章

  1. celery 定时任务时间篇

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...

  2. celery 定时任务

    用celery定时任务,定时删除文件夹 tasks.py from celery import Celery import os import shutil app = Celery('demo') ...

  3. 将celery定时任务设置为根据本地时区触发

    默认celery的时区为UTC,如果要在django项目中将celery定时任务配置为根据本地时区触发,则需要修改 在setttings.py 添加以下任意一行: # celery 相关配置 CELE ...

  4. Django Celery定时任务和时间设置

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: #coding:utf- from celery.task.schedules ...

  5. JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)

    JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!) 1.文件准备: 服务器:CentOS Linux release 7.3.1611 (Core)     Apa ...

  6. JavaScript基础细讲

    JavaScript基础细讲   JavaScript语言的前身叫作Livescript.自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原 ...

  7. Bamboo Django Celery定时任务和时间设置

    1.Celery加入定时任务 Celery除了可以异步执行任务之外,还可以定时执行任务.在实例代码的基础上写个测试方法: 1 #coding:utf-8 2 from celery.task.sche ...

  8. celery 定时任务,使用crontab表达式不执行(版本4.3.x)

    celery 定时任务,使用crontab表达式不执行(版本4.3.x) 在使用celery 执行定时任务时,发现任务不会执行,schedule设置如下: 经测试,如果去掉hour,则任务每分钟都会执 ...

  9. 细讲前端设置cookie, 储存用户登录信息

    细讲前端设置cookie 引言 正文 一.设置cookie 二.查看cookie 三.删除cookie 四.封装cookie操作 结束语 引言 我们都知道如果想做一个用户登录并使浏览器保存其登录信息, ...

随机推荐

  1. linux定时执行shell脚本

    写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 Shell俗称壳,类 ...

  2. Mysql中的Date转换

    一.背景 Mysql中有张表,表的一列为Date类型. 1. 插入日期xxx.setCreateTime(new Date())mybatis.insert(xxx) 2. 读取日期用Mybaitis ...

  3. Python使用偏函数与类实现装饰器

    # -*- coding: utf-8 -*- # author:baoshan # python对某个对象是否能通过装饰器形式使用只有一个要求:decorator必须是一个可被调用的对象. # 我们 ...

  4. 【Linux】宝塔服务器磁盘爆满处理方法

    直接上图 1 清理网站日志/php站点session/系统邮件/临时文件 cd /www/server/panel && python tools.pyc clear 2 清空面板回收 ...

  5. 修改 commit 历史

    修改 commit 历史 参考:修改 git 历史提交 commit 信息(重写历史)git 修改已提交的内容 git init echo t.md>.gitignore git add .gi ...

  6. 修改服务器时间以后 cookie无法保存

    修改了服务器时间以后发现,cookie无法保存.通过查看异步请求的响应头信息  Date是之前修改的信息,并不是当前的时间. header('Date: Mon, 17 Mar 2015 05:34: ...

  7. 【视频开发】OpenCV中Mat,图像二维指针和CxImage类的转换

    在做图像处理中,常用的函数接口有OpenCV中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转 ...

  8. [资料]ObjectARX 2020参考指南翻译中文版

    chm使用Google Chrome浏览器翻译,有些翻译不是很理想,因为2万5千多个html文件, 修正难度太大,所以只处理了一部分. 非常感谢 gzxl 辛苦肉眼修正一些翻译问题. 欢迎进入QQ群: ...

  9. 面试之哈希表leetcode

    1 案例1 leetcode-----242 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t ...

  10. Theano入门

    由于自己的一个小项目需要Theano部分的开源代码,所以学习一下并记录入门的经典网站. 入门中文博客:https://blog.csdn.net/hjimce/article/details/4680 ...