celery定时执行任务 的使用
1 参照博客 https://www.cnblogs.com/xiaonq/p/9303941.html#i1
1 创建celery_pro包 # 可在任意文件下
2 在 celery_pro 下创建 celery.py 文件
# -*- coding:utf8 -*-
from __future__ import absolute_import, unicode_literals
#1. absolute_import 可以使导入的celery是python绝对路基的celery模块,不是当前我们创建的celery.py
#2. unicode_literals 模块可能是python2和3兼容的,不知道
from celery import Celery
# from .celery import Celery #这样才是导入当前目录下的celery app = Celery('proj',
broker='redis://localhost',
backend='redis://localhost',
include=['celery_pro.tasks', ])
#celery-pro是存放celery文件的文件夹名字 #实例化时可以添加下面这个属性
app.conf.update(
result_expires=3600, #执行结果放到redis里,一个小时没人取就丢弃
)
import time
# 配置定时任务:每5秒钟执行 调用一次celery_pro下tasks.py文件中的add函数
app.conf.beat_schedule = {
'add-every-5-seconds': {
'task': 'celery_pro.tasks.add',
'schedule': 5.0,
'args': (16, 16),
}, } app.conf.timezone = 'UTC' if __name__ == '__macelery -A celery_pro beat -l infoin__':
app.start()
3 创建 tasks.py 文件
# -*- coding:utf8 -*-
from __future__ import absolute_import, unicode_literals
from .celery import app #从当前目录导入app #写一个add函数
@app.task
def add(x, y): print('执行函数')
return x + y
执行下面两条命令即可让celery定时执行任务了
1、 启动一个worker:在celery_pro外层目录下执行
celery -A celery_pro worker -l info
2、 启动任务调度器 celery beat
celery -A celery_pro beat -l info
3、执行效果
看到celery运行日志中每5秒回返回一次 add函数执行结果
3、启动celery的worker:每台机器可以启动8个worker
1、在pythondir目录下启动 /pythondir/celery_pro/ 目录下的worker
celery -A celery_pro worker -l info
2、后台启动worker:/pythondir/celery_pro/目录下执行
celery multi start w1 -A celery_pro -l info #在后台启动w1这个worker
celery multi start w1 w2 -A celery_pro -l info #一次性启动w1,w2两个worker
celery -A celery_pro status #查看当前有哪些worker在运行
celery multi stop w1 w2 -A celery_pro #停止w1,w2两个worker
celery multi restart w1 w2 -A celery_pro #重启w1,w2两个worker
celery定时执行任务 的使用的更多相关文章
- celery定时执行ansible api返回为空的问题
有两种方法解决这个问题,就是关闭assert:1.在celery 的worker启动窗口设置export PYTHONOPTIMIZE=1或打开celery这个参数-O OPTIMIZATION2.注 ...
- APScheduler定时执行外加supervisor管理后台运行
最近写的天气爬虫想要让它在后台每天定时执行,一开始用的celery,但不知道为什么明明设置cron在某个时间运行,但任务却不间断的运行.无奈转用apscheduler,但是不管怎么设置都不能使得当调用 ...
- C#定时执行
代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
- MVC 定时执行任务
环境:.net4.5 需求:需要一个方法定时执行任务 解决: System.Threading.Timer 提供以指定的时间间隔执行方法的机制. 此类不能被继承,有10多种实例化方法,满足多种情况. ...
- 【转】linux 定时执行shell脚本
在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ...
- Linux下定时执行脚本(转自Decode360)
文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog 老师(业精于勤而荒于嬉 ...
- [转]oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; selec ...
- linux定时执行任务crontab命令用法
linux系统的定时任务是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所 ...
- ORACLE 定时执行存储过程
推荐用dbms_scheduler方式更好 (2012-11-19注) /* 查询: select job,broken,what,interval,t.* from user_jobs t; job ...
随机推荐
- Android10_原理机制系列_Android消息机制(Handler)详述
概述 在Android中的多进程.多线程中提过,只有主线程(UI线程)可以更新UI,其他线程不可以,所以一般耗时操作放到子线程.子线程可以通过Handler将相关信息通知到主线程. Android的消 ...
- php读取Excel文件数据
首先先下载 PHPExcel 脚本之家下载地址:https://www.jb51.net/codes/194070.html 然后把文件丢到php脚本同级目录里面 在php文件里面写下以下代码即可 & ...
- Guitar Pro 教程之有效的几种泛音
学习音乐的朋友们都知道,泛音的种类分为好几种,一般分为自然泛音和人工泛音,击弦泛音,拨片泛音,半泛音等等.本章节采用图文结合的方式讲解{cms_selflink page='index' text=' ...
- jmeter压测mysql数据库
jmeter连接并压测mysql数据库,之前一直想用jmeter一下测试mysql数据库的性能,今天偶然看到一篇博客,于是乎开始自己动手实践. 一.准备工作 1.安装好mysql数据库,可以安装在本地 ...
- C语言讲义——函数
为实现特定目的而编写的一段可被调用的代码 简单地讲:函数就是一组语句,取了个名字 别名:子例程(routine)/方法(Method,一般面向对象的语言使用这个叫法) 函数的组成部分 以主函数为例: ...
- 【译】用 React 和 D3 创建图表
本文翻译自:https://dzone.com/articles/charts-with-modern-react-and-d3 本文将介绍如何利用 D3JS 和 ReactJS 来创建基础图表. R ...
- 使C语言实现面向对象的三个要素,你掌握了吗?
- tar解压提示:tar (child): 无法连接至 xxxx: 解析失败
如图提示: 错误原因:由于压缩文件中含有冒号导致 解决办法: 使用tar命令的–force-local选项
- 安全的字符串拷贝strcpy_s的实现与理解
在C标准库中提供了字符串拷贝函数strcpy,而微软则为为它提供了一个更安全的版本strcpy_s,其函数原型为 errno_t __cdecl strcpy_s( char* _Destinatio ...
- java顺序、选择、循环结构
一.顺序结构 二.选择结构 1.if都执行 2.if else if else 条件满足才执行 3.选择结构switch 一个case后有多条语句要加花括号 多个case的值不能相同 case中要加b ...