分布式任务调度系统的制作方法

文档序号:34026442发布日期:2023-05-05 09:18阅读:32来源:国知局
分布式任务调度系统的制作方法

所属的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。计算机可读存储介质例如可以是但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。


背景技术:

1、任务调度系统是为了自动完成特定任务,在约定的特定时刻去执行任务的过程,有了任务调度即可解放更多的人力,变为由系统自动去执行任务。

2、现有的任务调度系统在执行不同的系统任务时,如果使用单服务器,则单服务器长期运行,导致高负荷运转,而使用多系统同时执行时,经常会遇到多个服务器执行同一个系统任务的情况,因此,导致服务器资源浪费及执行结果错误,任务调度系统执行混乱的问题。


技术实现思路

1、为了解决多个服务器执行同一个系统任务,导致服务器资源浪费及执行结果错误的问题,本发明提供了分布式任务调度系统。

2、为了解决上述技术问题,本发明提供了分布式任务调度系统,包括:

3、任务检查模块、任务执行模块、任务状态项管理模块和进程管理模块,任务状态项管理模块分别与任务检查模块、进程管理模块和任务执行模块连接,该系统包括多个程序通道,每个程序通道用于分布式任务调度系统执行系统任务,其中:

4、任务检查模块,用于获取系统任务,并为系统任务添加锁限制,锁限制表征了系统任务在第一预设时间内只对应一个程序通道;

5、获取系统任务对应的任务状态项,任务状态项为任务失败、任务已完成、任务未执行、任务等待中、任务运行中和任务待收尾中的一种;

6、根据系统任务和系统任务对应的任务状态项,判断系统任务是否满足第一预设条件;

7、在任务状态项满足第一预设条件时,将系统任务作为第一目标任务,并将第一目标任务放入任务队列;

8、任务执行模块,用于在第一目标任务满足第二预设条件时,将第一目标任务作为第二目标任务,并从任务队列中获取第二目标任务;

9、以及调用第二目标任务对应的业务脚本;根据业务脚本,执行第二目标任务;当第二目标任务执行完毕后,将第二目标任务对应的任务状态项修改为目标任务状态项;

10、任务状态项管理模块,用于对日志表内的数据进行管理,日志表用于存储第二目标任务在执行过程中生成的数据,日志表包括任务日志表和任务分片日志表,第二目标任务包括任务和任务对应的各个任务分片;

11、进程管理模块,用于用于获取分布式任务调度系统的进程,并对分布式任务调度系统的进程进行监督。

12、本发明提供的分布式任务调度系统的有益效果是:通过对系统任务添加锁限制,使得该系统任务在第一预设时间内只对应一个程序通道,因此,解决了多个程序通道都执行同一个系统任务的问题;将各个第一目标任务放置在任务队列中,依次对每个第一目标任务判断是否满足第二预设条件,将满足第二预设条件的第一目标任务作为第二目标任务,并执行第二目标任务,当第二目标任务执行完毕时会将任务状态项修改为目标任务状态项,此时,分布式任务调度系统即可通过目标任务状态项得知第二目标任务是否执行完成,同时通过任务状态项管理模块对日志表内的数据进行管理,以及通过进程管理模块对分布式任务调度系统的进程进行监督,解决了多个服务器执行同一个系统任务,导致服务器资源浪费及执行结果错误的问题。

13、在上述技术方案的基础上,本发明的分布式任务调度系统还可以做如下改进。

14、进一步,上述任务检查模块包括分布式锁获取模块、任务状态项获取模块、检查判断模块和第一目标任务获取模块,检查判断模块分别与分布式锁获取模块和任务状态项获取模块连接,第一目标任务获取模块与检查模块连接,其中:

15、分布式锁获取模块,用于获取系统任务,并为系统任务添加锁限制,锁限制表征了系统任务在第一预设时间内只对应一个程序通道;

16、任务状态项获取模块,用于获取系统任务对应的任务状态项,任务状态项为任务失败、任务已完成、任务未执行、任务等待中、任务运行中和任务待收尾中的一种;

17、检查判断模块,用于根据系统任务和系统任务对应的任务状态项,判断系统任务是否满足第一预设条件;

18、第一目标任务获取模块,用于在任务状态项满足第一预设条件时,将系统任务作为第一目标任务,并将第一目标任务放入任务队列;

19、任务执行模块包括任务调取模块、业务脚本模块、执行脚本模块和任务状态项修改模块,任务调取模块与第一目标任务获取模块连接,业务脚本模块分别与任务调取模块和执行脚本模块连接,任务状态项修改模块与执行脚本模块连接;

20、任务调取模块,用于在第一目标任务满足第二预设条件时,将第一目标任务作为第二目标任务,并从任务队列中获取第二目标任务;

21、业务脚本模块,用于调用第二目标任务对应的业务脚本;

22、执行脚本模块,用于根据业务脚本,执行第二目标任务;

23、任务状态项修改模块,用于当第二目标任务执行完毕后,将第二目标任务对应的任务状态项修改为目标任务状态项。

24、采用上述进一步方案的有益效果是:通过分布式锁获取模块对系统任务添加锁限制,使得该系统任务在第一预设时间内只对应一个程序通道,因此,解决了多个程序通道都执行同一个系统任务的问题;通过第一目标任务获取模块将各个第一目标任务放置在任务队列中,并通过任务调取模块对每个第一目标任务判断是否满足第二预设条件,将满足第二预设条件的第一目标任务作为第二目标任务,并通过执行脚本模块执行第二目标任务,最后通过任务状态项修改模块将第二目标任务执行完毕时的任务状态项修改为目标任务状态项,此时,分布式任务调度系统即可通过目标任务状态项得知第二目标任务是否执行完成,解决了多个服务器执行同一个系统任务,导致服务器资源浪费及执行结果错误的问题。

25、进一步,上述任务检查模块还包括:

26、已丢失判断模块,用于若任务状态项为任务等待中或任务运行中或任务待收尾时,判断系统任务是否已丢失,若系统任务已丢失,则将已丢失的系统任务添加至任务队列中,已丢失表征了系统任务在执行过程中因意外关闭而未执行完毕。

27、采用上述进一步方案的有益效果是:由于系统任务在被调用的过程中可能出现丢失的情况,因此,需要将丢失的系统任务重新添加至任务队列中。

28、进一步,上述第一预设条件包括第三预设条件、第四预设条件和第五预设条件,第三预设条件为系统任务对应的第一预设分组等于系统任务对应的程序通道的第二预设分组,第四预设条件为:若任务状态项为任务已完成或任务未执行,且系统任务对应的任务激活时间小于当前时间;第五预设条件为:系统任务包含了前置任务,且前置任务已完成,前置任务为与系统任务相关联的任务;

29、检查判断模块具体用于:

30、根据系统任务和系统任务对应的任务状态项,判断系统任务是否同时满足第三预设条件、第四预设条件和第五预设条件。

31、采用上述进一步方案的有益效果是:通过第三预设条件、第四预设条件和第五预设条件,判断系统任务是否满足要求,若系统任务不能同时满足第三预设条件、第四预设条件和第五预设条件,则极大可能后续不能完成执行过程。

32、进一步,上述任务调取模块具体用于:

33、从任务队列中的各第一目标任务中获取满足第二预设条件的第二目标任务;

34、第二预设条件为:第一目标任务具有锁限制,且程序通道的剩余资源大于预设阈值,剩余资源表征了程序通道的负荷程度;

35、任务调取模块还用于:

36、获取第二目标任务对应的扣除资源,若从任务队列中获取到第二目标任务,则获取当前时刻的程序通道对应的剩余资源,并将剩余资源减去扣除资源得到当前时刻的下一时刻程序通道对应的剩余资源,若任务队列中未获取到第二目标任务,则当前时刻的程序通道对应的剩余资源不变。

37、采用上述进一步方案的有益效果是:通过程序通道的剩余资源,判断程序通道的负荷,从而避免程序通道超出负荷出现卡死的情况。

38、进一步,任务状态项修改模块具体用于:

39、当第二目标任务执行完毕后,若第二目标任务无法完成执行,则目标任务状态项为任务失败,并判断第二目标任务是否满足第五预设条件,若第二目标任务满足第五预设条件,则将第二目标任务重新添加进任务队列,若第二目标任务完成执行,则目标任务状态项为任务已完成;

40、当目标任务状态项为任务失败或任务已完成时,获取当前时刻的程序通道对应的剩余资源,并将剩余资源加上扣除资源得到当前时刻的下一时刻程序通道对应的剩余资源。

41、采用上述进一步方案的有益效果是:当第二目标任务完成执行后,第二目标任务对应的程序通道的处于闲置或低负荷状态,因此,将扣除的扣除资源补齐,从新计算当前时刻的程序通道的剩余资源。

42、进一步,上述任务状态项修改模块还用于:

43、当第二目标任务包括非并行任务和并行任务,非并行任务表示第二目标任务不包含任务分片,并行任务表示第二目标任务包含任务分片;

44、当第二目标任务为非并行任务时,若第二目标任务完成执行,则目标任务状态项为任务已完成;

45、若第二目标任务为并行任务时,若第二目标任务完成执行,则将各个第二目标任务对应的各个任务分片添加至任务队列。

46、本发明提供的分布式任务调度系统的有益效果是:由于第二目标任务包括非并行任务和并行任务,因此,需要将非并行任务的执行过程与并行任务的执行过程区分开,从而进行相应的执行过程。

47、进一步,上述任务状态项管理模块包括任务新增模块、启动任务模块、任务失败模块、任务完成模块、批量新增任务分片模块、新增单个任务分片模块、启动任务分片模块、任务分片失败模块和任务分片完成模块,任务执行模块分别与任务新增模块、启动任务模块、任务失败模块、任务完成模块、批量新增任务分片模块、新增单个任务分片模块、启动任务分片模块、任务分片失败模块和任务分片完成模块连接;

48、任务日志表中的字段包括日志id、任务id、分片数量、任务重试次数、任务进程id、任务状态项、任务状态项详情、任务分组、任务添加时间、任务开始时间和任务结束时间,任务分片日志表包括分片日志id、日志id、分片编号、分片重试次数、关联进程id、任务分片状态项、分片状态详情、分片添加时间、分片开始时间和分片结束时间;

49、任务新增模块,用于在第二目标任务为新增的任务时,当任务队列中第二目标任务的前一个系统任务对应的目标任务状态项为任务已成功或任务失败,则对任务状态项和日志id进行更新;

50、启动任务模块,用于在第二目标任务开始执行时,则对当前日志id和任务开始时间进行更新;

51、任务失败模块,用于在第二目标任务对应的目标任务状态项为任务失败时,则对任务重试次数、任务状态项详情、任务状态项和任务结束时间进行更新;

52、任务完成模块,用于在第二目标任务对应的目标任务状态项为任务成功时,则对激活时间和任务执行信息进行更新;

53、批量新增分片任务,用于在第二目标任务为并行任务时,则对分片状态详情和分片数量进行更新;

54、新增单个任务分片模块,用于在并行任务包含一个任务分片时,则对分片数量进行更进行更新;

55、启动任务分片模块,用于在任务分片开始执行时,则对关联进程id、任务分片状态项和分片开始时间进行更新;

56、任务分片失败模块,用于在任务分片对应的目标任务状态项为任务失败时,则对分片重试次数、分片状态项和分片结束时间进行更新;

57、任务分片完成模块,用于在任务分片对应的第二目标任务状态项为任务已完成时,则对任务分片状态项和分片结束时间进行更新。

58、本发明提供的分布式任务调度系统的有益效果是:通过任务状态项管理模块对第二目标任务在执行过程中生成的数据进行记录,以便任务执行模块在执行第二目标任务时能够调取相应的数据。

59、进一步,上述进程管理模块具体用于:

60、获取关联进程id,对于关联进程id中的每个进程,为所述进程设置一个过期时间;

61、对于关联进程id中的每个进程,若所述进程未中断,则每隔第二预设时间对所述进程的过期时间进行更新,若所述进程中断或失去响应,则所述过期时间失效。

62、本发明提供的分布式任务调度系统的有益效果是:通过更新进程的过期时间,从而确定该进程未中断,若过期时间失效,则表明该进程中断或失去响应。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1