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@