目录结构

第一步  celery_task 里面的celery文件

import time
from celery import Celery
# celery
from celery.schedules import crontab # 将此文件celery启动 windows celery worker -A celery_task --loglevel=info -P gevent
# 将此文件celery启动 linux celery worker -A celery_task --loglevel=info # 异步任务 Async Task
# 定时任务 Celery Beat
# 消息中间件 Broker
# 任务执行单元 Celery Worker
# 结果存储 Backend # 消息中间件 Broker
broker = 'redis://192.168.10.10'
# 结果存储 Backend
backend = 'redis://192.168.10.10/0' app = Celery('my_task', broker=broker, backend=backend,
include=['celery_task.celery_task_one', 'celery_task.celery_task_two',
]) # 时区
app.conf.timezone = 'Asia/Shanghai'
# 是否使用UTC
app.conf.enable_utc = False # 我要对beat任务生产做一个配置,这个配置的意思就是每10秒执行一次 celery_task.celery_task_one(10,10) app.conf.beat_schedule = {
"each10s_task": {
"task": "celery_task.celery_task_one.add",
"schedule": 30, # 每30秒钟执行一次 # 'schedule': timedelta(seconds=30),
"args": (10, 10)
},
"each1m_task": {
"task": "celery_task.celery_task_two.add_add",
"schedule": crontab(minute='*/1'), # 每一分钟执行一次
"args": (10, 30)
},
"each24hours_task": {
"task": "celery_task.celery_task_two.add",
"schedule": crontab(), # 每一分钟执行一次
"args": (10, 100000)
}
} # 任务结果过期设置 `result_expires=3600' 。默认设置是1天,
app.conf.update(
result_expires=3600,
) # 以上配置完成之后,还有一点非常重要
# 不能直接创建Worker了,因为我们要执行周期任务,所以首先要先有一个任务的生产方
# celery beat -A celery_task
# celery worker -A celery_task -l INFO -P eventlet

第二步 do_task

from celery_task.celery_task_one import add as add1
from celery_task.celery_task_two import add as add2
from celery_task.celery import app from celery.schedules import crontab # 将任务交给Celery的Worker执行
res = add1.delay(1, 3) print(res.id) res = add2.delay(1, 3) print(res.id) """
Celery4
新版的好处是,可以把定时任务和普通的任务一样单独定义了。多了 @app.on_after_configure.connect 这个装饰器,3版本是没有这个装饰器的。
写代码
单独再创建一个py文件,存放定时任务: 链接:https://www.jianshu.com/p/c622f5f5d015
"""

第三步 将所有任务 写在celery_task 下面  'celery_task.celery_task_one', 'celery_task.celery_task_two' 进行调取执行

'celery_task.celery_task_one'

from .celery import app
import time @app.task
def add(x, y):
time.sleep(5)
return x + y
'celery_task.celery_task_two' 
from .celery import app
import time @app.task
def add(x, y):
time.sleep(5)
return x * y @app.task
def add_add(x, y):
time.sleep(5)
return x * y

# 在 celery_task 目录下执行  是用来生产定时任务(app.conf.beat_schedule配置的)

# celery beat -A celery_task

-------------------------------------------------------------

# 在 celery_task 目录下执行,这个的目的是启动 worker , worker是用来执行,生产的任务
# celery worker -A celery_task -l INFO -P eventlet
# 将此文件celery启动   windows   celery worker -A celery_task --loglevel=info -P gevent
# 将此文件celery启动 linux celery worker -A celery_task --loglevel=info
 
# 在  celery_task  目录下执行

最新文章

  1. sqlval
  2. Swift String类型常规操作
  3. 通过扩展让ASP.NET Web API支持W3C的CORS规范(转载)
  4. Android界面实现----PagerTabStrip绚丽的滑动标签
  5. 主成分分析(PCA)原理及R语言实现
  6. android 滑动菜单SlidingMenu的实现
  7. Android版多线程下载器核心代码分享
  8. leetcode修炼之路——13. Roman to Integer
  9. 译文:User-agent的历史
  10. nodejs querystring
  11. 使用固件库操作STM32F4时的必要配置(转)
  12. webView缩放
  13. intellij idea的安装步骤---经典
  14. Linux Shell 脚本攻略学习--四
  15. 解决ajax跨域访问sessionid不一致问题
  16. Shell中echo改变输出显示样式
  17. 解决Jenkins邮件配置问题
  18. python数据结构之堆(heap)
  19. 星云的Linux专用学习手册
  20. web.xml简介

热门文章

  1. ambari介绍及安装
  2. 基于frida框架Hook native中的函数(1)
  3. hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)
  4. POJ2528线段树段更新逆序异或(广告牌)
  5. poj2418map或者字典树
  6. Windows PE 第十章 加载配置信息
  7. Python爬虫之-动态网页数据抓取
  8. layui图片上传
  9. 自定义WPF分页控件
  10. SDK安全测试