[发明专利]任务执行方法及装置、分布式系统有效
| 申请号: | 201710013968.1 | 申请日: | 2017-01-09 |
| 公开(公告)号: | CN108287751B | 公开(公告)日: | 2022-02-01 |
| 发明(设计)人: | 马冲 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
| 代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 任务 执行 方法 装置 分布式 系统 | ||
1.一种任务执行方法,应用于多个主机,其中,所述多个主机中的至少一个主机包括:数据库模块,用于存储所述多个主机的定时任务,其特征在于,所述多个主机中的每个主机中还包括:与所述数据库模块连接的任务调度模块;所述方法包括:
所述多个主机启动所述任务调度模块,获取与所述任务调度模块对应的一个或多个指定任务,其中,获取与所述任务调度模块对应的一个或多个指定任务包括:在所述数据库模块中查找所述定时任务的任务标识,所述任务标识中携带有为所述定时任务分配的任务调度模块的编号;依据所述任务标识中任务调度模块的编号确定与所述任务调度模块的编号对应的所述指定任务,所述指定任务为所述定时任务中已到达定时时间的任务;
将所述指定任务存储至消息队列中供所述多个主机调用执行。
2.根据权利要求1所述的方法,其特征在于,所述任务标识为依据以下信息生成的标识:
所述任务调度模块的编号、所述定时任务的时间戳、与所述定时任务对应的事件,其中,所述任务调度模块的编号用于指示当前分布式主机已经具有的任务调度模块的数量。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:依据以下方式更新所述任务标识:
获取所述分布式主机中预先设置的任务调度模块的数量;
在预先设置的任务调度模块的数量小于所述任务标识中所述任务调度模块的编号时,调整所述任务标识中任务调度模块的编号。
4.根据权利要求2所述的方法,其特征在于,所述任务调度模块的编号通过以下方式得到:
将所述事件的哈希值与为所述任务调度模块所分配的编号信息进行取模运算,得到所述任务调度模块的编号。
5.根据权利要求1所述的方法,其特征在于,依据所述任务标识中任务调度模块的编号确定与所述任务调度模块的编号对应的所述指定任务,包括:
查找与所述任务调度模块的编号对应并且所述定时任务中的定时时间小于所述任务调度模块的当前时间戳的任务,将查找结果所对应的任务作为所述指定任务。
6.根据权利要求1所述的方法,其特征在于,依据所述任务标识中任务调度模块的编号确定与所述任务调度模块的编号对应的所述指定任务,包括:
按照预定时间依据所述任务标识中任务调度模块的编号确定与所述任务调度模块的编号对应的所述指定任务。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在分布式主机启动任务调度模块之前,所述方法还包括:
所述分布式主机获取所述任务调度模块的编号,并对所述任务调度模块的编号进行锁定处理,其中,所述锁定处理用于表示所述任务调度模块的编号已被使用,且禁止所述分布式主机的其他任务调度模块使用所述任务调度模块的编号。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:在以下之一情况下对所述任务调度模块的编号解除锁定:
所述任务调度模块故障、所述任务调度模块对应的进程或线程终止。
9.一种分布式系统,其特征在于,包括:多个主机,其中,每个主机中包括:
存储器,用于存储数据库模块和任务调度模块,其中,所述数据库模块用于存储所述多个主机的定时任务;
处理器,用于启动任务调度模块,获取与所述任务调度模块对应的一个或多个指定任务,其中,获取与所述任务调度模块对应的一个或多个指定任务包括:在所述数据库模块中查找所述定时任务的任务标识,所述任务标识中携带有为所述定时任务分配的任务调度模块的编号;依据所述任务标识中任务调度模块的编号确定与所述任务调度模块的编号对应的所述指定任务,所述指定任务为所述定时任务中已到达定时时间的任务。
10.一种任务执行装置,该装置应用于多个主机,其中,所述多个主机中的至少一个主机包括:数据库模块,用于存储所述多个主机的定时任务,其特征在于,所述多个主机中的每个主机中还包括:与所述数据库模块连接的任务调度模块;所述装置包括:
启动模块,用于启动任务调度模块,获取与所述任务调度模块对应的一个或多个指定任务,其中,获取与所述任务调度模块对应的一个或多个指定任务包括:在所述数据库模块中查找所述定时任务的任务标识,所述任务标识中携带有为所述定时任务分配的任务调度模块的编号;依据所述任务标识中任务调度模块的编号确定与所述任务调度模块的编号对应的所述指定任务,所述指定任务为定时任务中已到达定时时间的任务,所述定时任务为分布式主机的定时任务;
存储模块,用于将所述指定任务存储至消息队列中供所述多个主机调用执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710013968.1/1.html,转载请声明来源钻瓜专利网。





