1.一种基于celery的可靠可配置任务系统,其特征在于,所述系统包括:
网络接口模块、分配模块、配置模块、监控模块、数据库模块、celery模块、执行模块;
所述网络接口模块作为与网络端的数据输入、输出端口,并将接收到的数据信息发送至所述分配模块;
所述分配模块与所述数据库模块、celery模块进行数据交互,并为每一类注册在celery模块上的任务创建一个负载均衡,当所述分配模块接收到来自所述网络接口模块的提交任务请求后,在所述数据库模块中创建对应记录,再通过负载均衡将提交任务请求对应的任务发送至celery模块中的消息代理中;
所述配置模块用于维护系统的配置文件,并与所述监控模块进行数据交互;
所述监控模块用于解析和检查系统配置文件,并实时监控celery模块的定时任务调度器及执行模块的状态,同时,校验并执行配置模块发送的变更数据;
所述数据库模块用于进行系统数据存储;
所述执行模块用于执行下发的具体任务内容。
2.根据权利要求1所述的系统,其特征在于,所述分配模块还用于:在任务执行结束时,如果任务执行成功,则保存结果到所述数据库模块,并返回信息给网络接口模块,如果任务执行不成功,则重新下发任务。
3.根据权利要求1所述的系统,其特征在于,所述负载均衡还用于:当任务的预估执行时间差值满足一预设时间时,采用轮询方式监控任务状态;否则,依据执行时间对任务进行划分,以将任务归入不同队列。
4.根据权利要求3所述的系统,其特征在于,所述队列数目与注册在celery模块上的类别数目相同。
5.根据权利要求1所述的系统,其特征在于,所述分配模块在所述数据库模块中创建对应记录中,包括为任务分配的id、任务的参数、任务下发时间。
6.根据权利要求2所述的系统,其特征在于,所述分配模块判断任务失败的方式为:
分配模块收到成功执行任务的返回信息时,会用该成功执行任务的下发时间与同队列中已下发任务的下发时间进行对比,如果连续n个已下发任务的下发时间都早于成功执行任务的下发时间,则判定该成功执行任务失败;或者
当所述celery模块的任务重试次数超出一预设重试阈值时,则判定该重试的任务失败。
7.根据权利要求1所述的系统,其特征在于,所述配置模块还用于:解析系统新配置参数并与当前系统配置参数进行比较,如果发生变更就发送变更信号与变更内容给监控模块,等监控模块处理完成并返回成功后,更新配置文件,否则忽略此次变更。
8.根据权利要求1所述的系统,其特征在于,所述系统配置文件中,包含system节、task节;
所述system节描述celery模块中的消息代理及后端处理;
所述task节用于描述任务。
9.根据权利要求1所述的系统,其特征在于,所述监控模块在校验并执行配置模块发送的变更数据时,执行的相关操作包括:
add操作,首先检查任务执行函数是否存在,根据任务描述启动新的worker进程;以及
update操作,在worker空闲或完成任务时,杀死worker进程,再根据任务描述启动新的worker进程;以及
delete操作,杀死worker进程。
10.一种基于celery的可靠可配置任务装置,其特征在于,所述装置至少包括一处理器模块及存储器模块,所述处理器模块及存储器模块被配置为包含如权利要求1至9任一所述的基于celery的可靠可配置任务系统。