本发明属于特别适用于特定功能的数字计算设备或数据处理设备或数据处理方法技术领域,尤其涉及一种asp.net运行定时任务的方法和系统。
背景技术:
目前,业内常用的现有技术是这样的:
现有技术中并没有专用的运行定时任务的系统,通常是通过在程序中嵌入定时器解决定时任务的问题,当嵌入定时器并不能解决多项定时任务同时运行的问题,同时嵌入定时器后,若应用程序不处于运行状态,系统可能会释放所有相关资源,当应用程序再次运行后,也无法在进行相应的定时任务
综上所述,现有技术存在的问题是:
(1)现有技术无法同时进行多项定时任务;
(2)定时任务运行不稳定,可能会在休眠时被系统销毁。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种asp.net运行定时任务的方法和系统。
本发明是这样实现的,一种asp.net运行定时任务的方法和系统,所述asp.net运行定时任务的系统具体包括:
任务自定义模块、检测模块、触发模块、定时任务处理模块、主控模块、任务列表管理模块、应用程序激活模块、异常检测模块、结束模块、存储模块;
任务自定义模块:与主控模块连接,用于自定义任务处理方法、任务触发条件以及任务结束条件;
检测模块:与主控模块连接,用于检测应用程序是否开始以及是否结束;
触发模块:与主控模块连接,用于当达到自定义的触发条件、任务结束条件时向主控模块发出信号;
定时任务处理模块:与主控模块连接,用于根据自定义的定时任务方法进行任务处理;
主控模块:与任务自定义模块、检测模块、触发模块、定时任务处理模块、任务列表管理模块、应用程序激活模块、异常检测模块、结束模块以及存储模块连接;用于进行任务的调度,并控制各个模块正常工作;
任务列表管理模块:与主控模块连接,用于管理定时任务列表;
应用程序激活模块:与主控模块连接,用于在应用程序结束运行时,当未达到任务结束条件时进行应用程序的激活;
异常检测模块:与主控模块连接,用于检测任务处理是否正常;
结束模块:与主控模块连接,用于当达到任务结束条件时,释放与该任务所有相关的资源;
存储模块:与主控模块连接,用于存储正在运行以及等待运行的任务情况。
进一步,所述asp.net运行定时任务的方法具体包括:
步骤一,用户自定义任务处理方法、任务触发条件以及任务结束的条件;
步骤二,检测并反馈应用程序所处状态,并根据应用程序所处状态进行相应的任务处理,并在任务处理过程中检测任务处理是否正常;
步骤三,根据任务的处理情况自动更新任务列表;自动存储所有正在运行以及等待运行的任务情况。
进一步,步骤二中,所述根据应用程序所处状态进行相应任务处理具体包括:
(1)当应用程序未开始运行也不处于结束状态时,则不做任何操作;
(2)当应用程序开始运行时,则判断是否达到了自定义的任务触发条件;若达到触发条件则进行定时任务处理;若为达到自定义的任务触发条件则不做任何操作;
(3)当应用程序结束运行时,则判断是否达到了任务结束条件;若达到了任务结束条件则释放所有与该项目相关的资源;若未达到任务结束条件,则进行应用程序的激活。
进一步,所述定时任务处理具体包括:
(1)获取当前的时间;
(2)获取未处理的定时任务列表以及定时任务处理时间;
(3)当当前时间与定时任务处理时间相等时根据自定义的处理过程进行相应处理。
综上所述,本发明的优点及积极效果为:
本发明提供的系统能够同时运行多项定时任务,同时能够自动跟新任务的运行状况,多线程共同运作,具备异常处理能力;同时能够在应用程序休眠时进行应用程序的激活,避免了线程被系统销毁,同时用户可自定义定时任务,方便快捷且具备普适性;当任务结束后,系统可自动释放所有资源,节省了存储空间,保证了系统运行的效率以及空间利用率。
附图说明
图1是本发明实施例提供的asp.net运行定时任务的系统结构示意图。
图2是本发明实施例提供的asp.net运行定时任务的方法流程图。
图中:1、任务自定义模块;2、检测模块;3、触发模块;4、定时任务处理模块;5、主控模块;6、任务列表管理模块;7、应用程序激活模块;8、异常检测模块;9、结束模块;10、存储模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图对本发明的应用原理做详细描述。
如图1所示,本发明实施例提供的asp.net运行定时任务的系统具体包括:
任务自定义模块1、检测模块2、触发模块3、定时任务处理模块4、主控模块5、任务列表管理模块6、应用程序激活模块7、异常检测模块8、结束模块9、存储模块10;
任务自定义模块1:与主控模块5连接,用于自定义任务处理方法、任务触发条件以及任务结束条件;
检测模块2:与主控模块5连接,用于检测应用程序是否开始以及是否结束;
触发模块3:与主控模块5连接,用于当达到自定义的触发条件、任务结束条件时向主控模块发出信号;
定时任务处理模块4:与主控模块5连接,用于根据自定义的定时任务方法进行任务处理;
主控模块5:与任务自定义模块1、检测模块2、触发模块3、定时任务处理模块4、任务列表管理模块6、应用程序激活模块7、异常检测模块8、结束模块9以及存储模块10连接;用于进行任务的调度,并控制各个模块正常工作;
任务列表管理模块6:与主控模块5连接,用于管理定时任务列表;
应用程序激活模块7:与主控模块5连接,用于在应用程序结束运行时,当未达到任务结束条件时进行应用程序的激活;
异常检测模块8:与主控模块5连接,用于检测任务处理是否正常;
结束模块9:与主控模块5连接,用于当达到任务结束条件时,释放与该任务所有相关的资源;
存储模块10:与主控模块5连接,用于存储正在运行以及等待运行的任务情况。
如图2所示,本发明实施例提供的asp.net运行定时任务的方法具体包括:
s101,用户自定义任务处理方法、任务触发条件以及任务结束的条件;
s102,检测并反馈应用程序所处状态,并根据应用程序所处状态进行相应的任务处理,并在任务处理过程中检测任务处理是否正常;
s103,根据任务的处理情况自动更新任务列表;自动存储所有正在运行以及等待运行的任务情况。
步骤s102中,本发明实施例提供的根据应用程序所处状态进行相应任务处理具体包括:
(1)当应用程序未开始运行也不处于结束状态时,则不做任何操作;
(2)当应用程序开始运行时,则判断是否达到了自定义的任务触发条件;若达到触发条件则进行定时任务处理;若为达到自定义的任务触发条件则不做任何操作;
(3)当应用程序结束运行时,则判断是否达到了任务结束条件;若达到了任务结束条件则释放所有与该项目相关的资源;若未达到任务结束条件,则进行应用程序的激活。
本发明实施例提供的定时任务处理具体包括:
(1)获取当前的时间;
(2)获取未处理的定时任务列表以及定时任务处理时间;
(3)当当前时间与定时任务处理时间相等时根据自定义的处理过程进行相应处理。
本发明的工作原理如下:
用户通过任务自定义模块1进行定时任务处理方法、任务触发条件以及结束条件的自定义;检测模块2检测应用程序所处的状态,并将应用程序所处状态实时反馈给主控模块5;当应用程序处于未运行的状态时,不做任何操作;当应用程序开始运行后,则主控模块5遍历任务列表管理模块6的未处理任务列表,并依次控制触发模块3检测是否达到了未处理任务中各任务的任务处理的触发条件,当达到触发条件时,触发模块3向主控模块5反馈信号,主控模块5控制定时任务处理模块4按照用户自定义的定时任务处理过程进行定时任务的处理;同时主控模块5控制异常检测模块8检测任务处理是否正常;当任务处理结束后,主控模块5控制任务列表管理模块6进行任务列表的更新,同时主控模块5再次调动触发模块3判断该任务是否达到了结束条件,当达到结束条件时,则主控模块5控制结束模块9释放所有与该任务相关的资源,若未达到结束条件,则主控模块5控制应用程序激活模块7每隔一段时间进行应用程序的激活,直至该任务达到结束条件结束;存储模块10用于存储所有与正在进行的任务以及未处理的任务的处理信息以及所有相关信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。