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

前端之家收集整理的这篇文章主要介绍了【python小随笔】celery周期任务(简单原理)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1:目录结构

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

2:celery.py

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

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


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

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

3:任务文件配置

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

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

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


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

 

猜你在找的Python相关文章