【python小随笔】celery周期任务(简单原理)

1:目录结构

|--celery_task
    |--celery.py             # 执行任务的main函数
    |--task_one              # 第一个任务
    |--task_two              # 第2个任务
            .                    .
            .                    .
    |--task_.                # 第n个任务

2:celery.py

from celery import Celery         # 导入celery模块
from celery.schedules import crontab   # 周期定义工具包

# 配置任务
celery_task = Celery(
    "task",
    broker="redis://127.0.0.1:6379",
    backend="redis://127.0.0.1:6379",
    include=["Celery_task.task_one",]    # 任务文件夹名称.任务文件,多个往后面添加
)

# crontab(minute=‘*/720‘) # 12小时执行一次
# "schedule": 10,  # 每10秒钟执行一次

# 周期时间定义
celery_task.conf.beat_schedule = {
    "each1d_task": {
        "task": "Celery_task.task_keyword.monitored_ranking", # 要执行的函数名
        "schedule": crontab(minute=‘*/720‘),   # 12小时执行一次
        # "args": (10, 10)
    },
}
        

3:任务文件配置

from Celery_task.celery import celery_task     # 导入执行主函数文件

from keywords.views.celery_monitored_ranking import KeywordRun # 这里是直接导入执行的文件的执行函数

import traceback  # 日志错误详细显示模块
from logging_files import logging_main  # 导入日志对象

@celery_task.task       # 配置文件中的名称要一样
def monitored_ranking():
    try:
        KeywordRun()      # 执行函数
    except Exception as e:
        msg = traceback.format_exc()
        logging_main.monitored_ranking_error.error(msg)

原文地址:https://www.cnblogs.com/wanghong1994/p/11993738.html

时间: 2024-10-11 10:12:37

【python小随笔】celery周期任务(简单原理)的相关文章

【python小随笔】进程池 multiprocessing.Pool的简单实现与踩过的坑

#导入进程模块 import multiprocessing #创建进程池 坑:一定要在循环外面创建进程池,不然会一直创建 pool = multiprocessing.Pool(30) for Size in Size_list: index,Size_Asin = Size.xpath('./@value')[0].split(",") Size_Asin_url = "https://www.amazon.cn/dp/%sth=1&psc=1" % S

python小程序----queue模块的简单使用

def productor (myid,dataqueue,num_thread_per_productor): for i in range(num_thread_per_productor): dataqueue.put('生产者ID:%s ==> 第%s个'%(myid,i)) def consumer (myid,dataqueue,stdoutlock): while True: try: data=dataqueue.get(block=False) except queue.Emp

【python小随笔】python解析xml格式字符串与xml文件

1:解析xml---文件 from xml.dom.minidom import parse import xml.dom.minidom # 使用minidom解析器打开XML文档 DOMTree = xml.dom.minidom.parse("./test.xml") print(DOMTree) collection = DOMTree.documentElement # 集合某个标签 VariationChilds = collection.getElementsByTagN

【python小随笔】将一个列表的值,分成10个一组,遍历的时候每10个遍历一次

t = ['B071LF9R6G', 'B0714BP3H4', 'B0756FL8R7', 'B072HX95ZR', 'B07CX389LX', 'B07D9MZ7BD', 'B07D9L15L5', 'B00L1UNPZ0', 'B07KDL9RSD', 'B01N02WUM3', 'B072KTNZMW', 'B071Z71BXW', 'B00DU76BOY', 'B07D9NC33M', 'B07G82D89J', 'B076C9X4KS', 'B07CTMG6Y9', 'B071JZ

【python小随笔】python 解析xml数据的新手大坑>>抓取多重标签,遍历各标签的数据

xml文档: <GetMatchingProductResult ASIN="B071LF9R6G" status="Success">...</GetMatchingProductResult> <GetMatchingProductResult ASIN="B0714BP3H4" status="Success">...</GetMatchingProductResult>

在python下比celery更加简单的异步任务队列RQ

前言: 这里介绍一个python下,比celery更加简单的异步工具,真的是很简单,当然他的功能没有celery多,复杂程度也没有celery大,文档貌似也没有celery多,但是为啥会介绍rq这个东西 因为他够简单. 当然他虽然简单,但是也是需要中间人的,也就是 Broker,这里只能是redis了. 他没有celery支持的那么多,比如 redis rabbitmq mongodb mysql之类的. 说回来,咱们用rq,就是看重他的简单. 如对celery有兴趣,可以看看我以前写过的博文.

Python写地铁的到站的原理简易版

Python地铁的到站流程及原理(个人理解) 今天坐地铁看着站牌就莫名的想如果用Python写其工作原理 是不是很简单就小试牛刀了下大佬们勿喷纯属小弟个人理解 首先来看看地铁上显示的站牌如下: 就想这首先站点固定的名称固定的站点名称长度可知道,这不是符合列表嘛[第一站,第二站,...,最后一站] 把这写站名放入列表中一个for循环自动帮你取每个站名 你可以加入time.sleep来设置每个站的之间的时间, 过长江隧道的时间可以单独加个if判断站名改变默认时间就行,这里还可以通过站名判断是否需要转

Spring MVC简单原理

Spring MVC简单原理 针对有Java Web基础.Spring基础和Spring MVC使用经验者,文章比较简单,权当自己的一个总结和备忘吧. 前言 目前基于Java的web后端,Spring生态应该是比较常见了.虽然现在流行前后端分离,MVC和后端模板渲染越来越少,后端专注向前端提供数据接口.但由于笔者维护着一个老项目,既有JSP技术也有只返回JSON的接口,两者都是基于Spring MVC这一套技术实现的,所以暂且觉得了解一下Spring MVC原理还是有所裨益的. Spring M

【机器学习算法-python实现】采样算法的简单实现

1.背景 采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样).常用的采样算法有以下几种(来自百度知道): 一.单纯随机抽样(simple random sampling) 将调查总体全部观察单位编号,再用抽签法或随机数字表随机抽取部分观察单位组成样本. 优点:操作简单,均数.率及相应的标准误计算简单. 缺点:总体较大时,难以一一编号. 二.系统抽样(systematic sampling) 又称机械抽样.等距抽样,即先将总体的观察单位按某一顺序号分成n个部分,再从第一部分随机抽取第k