一种异步任务的调度方法、装置以及电子设备制造方法及图纸

技术编号:19424710 阅读:26 留言:0更新日期:2018-11-14 10:28
本说明书提供一种异步任务的调度方法,应用于服务器集群中的任一服务器,其中,所述服务器集群部署了分布式缓存;所述服务器预先绑定了异步任务表;所述方法包括:扫描绑定的所述异步任务表获取待执行的异步任务ID;将所述异步任务ID写入分布式缓存,并基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存;如果所述异步任务ID未写入所述分布式缓存,则执行与所述异步任务ID对应的异步任务。

【技术实现步骤摘要】
一种异步任务的调度方法、装置以及电子设备
本说明书涉及计算机应用领域,尤其涉及一种异步任务的调度方法、装置以及电子设备。
技术介绍
在分布式业务系统中,通常会存在不同的子系统之间互相耦合的情况;例如,如果子系统A与子系统B之间存在调用关系,子系统B需要调用子系统A执行的任务1的执行结果,来继续执行任务2,那么子系统A和子系统B之间存在耦合关系。不同的子系统之间的耦合关系虽然在某种程度上增强了不同子系统在业务层面上的联系,但一旦上游的子系统发生异常,会导致下游的子系统也发生连锁的系统异常;例如,如果以上示出的子系统A出现业务异常,任务1的执行出现异常,那么子系统B则会处于一直等待任务1的执行结果的状态,导致子系统B也出现异常;因此,在分布式业务系统中,对不同的子系统进行解耦合,是一个非常重要的环节。
技术实现思路
本说明书提出一种异步任务的调度方法,应用于服务器集群中的任一服务器,其中,所述服务器集群部署了分布式缓存;所述服务器预先绑定了异步任务表;所述方法包括:扫描绑定的所述异步任务表获取待执行的异步任务ID;将所述异步任务ID写入分布式缓存,并基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存;如果所述异步任务ID未写入所述分布式缓存,则执行与所述异步任务ID对应的异步任务。可选的,还包括:确定所述服务器在所述服务器集群中的服务器编号;针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,并将与所述异步任务表ID对应的异步任务表与所述服务器绑定。可选的,还包括:监听所述服务器集群中的服务器数量;当监听到所述服务器集群中的服务器数量发生变化时,删除为所述服务器绑定的异步任务表,并重新确定所述服务器在所述服务器集群中的服务器编号;以及,针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,并将与所述异步任务表ID对应的异步任务表重新与所述服务器绑定。可选的,所述针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,包括:针对异步任务表的总表数与所述服务器的编号进行取模运算;将所述取模运算结果对应的取值确定为与所述服务器绑定的异步任务表ID。可选的,所述写缓存结果为所述异步任务ID在所述分布式缓存中的写入次数;所述基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存,包括:获取所述分布式缓存返回的所述异步任务ID在所述分布式缓存中的写入次数;确定所述写入次数是否大于1;如果所述写入次数大于1,确定所述异步任务ID已写入所述分布式缓存;如果所述写入次数小于或者等于1,确定所述异步任务ID未写入所述分布式缓存。可选的,写入所述分布式缓存的异步任务ID被配置了缓存有效时长;其中,当写入所述分布式缓存的任一异步任务ID的缓存有效时长超时时,则从所述分布式缓存中删除所述异步任务ID。可选的,还包括:如果所述异步任务ID已写入所述分布式缓存,则丢弃与所述异步任务ID对应的异步任务。本说明书还提出一种异步任务的调度装置,应用于服务器集群中的任一服务器,其中,所述服务器集群部署了分布式缓存;所述服务器预先绑定了异步任务表;所述装置包括:获取模块,扫描绑定的所述异步任务表获取待执行的异步任务ID;写入模块,将所述异步任务ID写入分布式缓存,并基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存;执行模块,如果所述异步任务ID未写入所述分布式缓存,则执行与所述异步任务ID对应的异步任务。可选的,还包括:绑定模块,确定所述服务器在所述服务器集群中的服务器编号;针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,并将与所述异步任务表ID对应的异步任务表与所述服务器绑定。可选的,所述绑定模块进一步:监听所述服务器集群中的服务器数量;当监听到所述服务器集群中的服务器数量发生变化时,删除为所述服务器绑定的异步任务表,并重新确定所述服务器在所述服务器集群中的服务器编号;以及,针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,并将与所述异步任务表ID对应的异步任务表重新与所述服务器绑定。可选的,所述绑定模块进一步:针对异步任务表的总表数与所述服务器的编号进行取模运算;将所述取模运算结果对应的取值确定为与所述服务器绑定的异步任务表ID。可选的,所述写缓存结果为所述异步任务ID在所述分布式缓存中的写入次数;所述写入模块:获取所述分布式缓存返回的所述异步任务ID在所述分布式缓存中的写入次数;确定所述写入次数是否大于1;如果所述写入次数大于1,确定所述异步任务ID已写入所述分布式缓存;如果所述写入次数小于或者等于1,确定所述异步任务ID未写入所述分布式缓存。可选的,写入所述分布式缓存的异步任务ID被配置了缓存有效时长;其中,当写入所述分布式缓存的任一异步任务ID的缓存有效时长超时时,则从所述分布式缓存中删除所述异步任务ID。可选的,还包括:丢弃模块,如果所述异步任务ID已写入所述分布式缓存,则丢弃与所述异步任务ID对应的异步任务。本说明书还提出一种电子设备,包括:处理器;用于存储机器可执行指令的存储器;其中,通过读取并执行所述存储器存储的与异步任务的调度的控制逻辑对应的机器可执行指令,所述处理器被促使:扫描绑定的所述异步任务表获取待执行的异步任务ID;将所述异步任务ID写入分布式缓存,并基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存;如果所述异步任务ID未写入所述分布式缓存,则执行与所述异步任务ID对应的异步任务。通过以上技术方案,可以有效的防止在服务器集群中并发执行相同的异步任务。附图说明图1是本说明书一实施例示出的一种异步任务的调度方法的流程图;图2是本说明书一实施例示出的一种基于ZooKeeper服务框架的分布式系统的架构图;图3是本说明书一实施例示出的一种在ZooKeeper服务框架下的异步任务的并发控制的流程图;图4是本说明书一实施例提供的承载一种异步任务的调度装置的电子设备所涉及的硬件结构图;图5是本说明书一实施例提供的一种异步任务的调度装置的逻辑框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在实际应用中,通常可以在分布本文档来自技高网...

【技术保护点】
1.一种异步任务的调度方法,应用于服务器集群中的任一服务器,其中,所述服务器集群部署了分布式缓存;所述服务器预先绑定了异步任务表;所述方法包括:扫描绑定的所述异步任务表获取待执行的异步任务ID;将所述异步任务ID写入分布式缓存,并基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存;如果所述异步任务ID未写入所述分布式缓存,则执行与所述异步任务ID对应的异步任务。

【技术特征摘要】
1.一种异步任务的调度方法,应用于服务器集群中的任一服务器,其中,所述服务器集群部署了分布式缓存;所述服务器预先绑定了异步任务表;所述方法包括:扫描绑定的所述异步任务表获取待执行的异步任务ID;将所述异步任务ID写入分布式缓存,并基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存;如果所述异步任务ID未写入所述分布式缓存,则执行与所述异步任务ID对应的异步任务。2.根据权利要求1所述的方法,还包括:确定所述服务器在所述服务器集群中的服务器编号;针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,并将与所述异步任务表ID对应的异步任务表与所述服务器绑定。3.根据权利要求2所述的方法,还包括:监听所述服务器集群中的服务器数量;当监听到所述服务器集群中的服务器数量发生变化时,删除为所述服务器绑定的异步任务表,并重新确定所述服务器在所述服务器集群中的服务器编号;以及,针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,并将与所述异步任务表ID对应的异步任务表重新与所述服务器绑定。4.根据权利要求2或3所述的方法,所述针对所述服务器编号进行映射计算得到待绑定的异步任务表ID,包括:针对异步任务表的总表数与所述服务器的编号进行取模运算;将所述取模运算结果对应的取值确定为与所述服务器绑定的异步任务表ID。5.根据权利要求1所述的方法,所述写缓存结果为所述异步任务ID在所述分布式缓存中的写入次数;所述基于所述分布式缓存返回的写缓存结果确定所述异步任务ID是否已写入所述分布式缓存,包括:获取所述分布式缓存返回的所述异步任务ID在所述分布式缓存中的写入次数;确定所述写入次数是否大于1;如果所述写入次数大于1,确定所述异步任务ID已写入所述分布式缓存;如果所述写入次数小于或者等于1,确定所述异步任务ID未写入所述分布式缓存。6.根据权利要求1所述的方法,写入所述分布式缓存的异步任务ID被配置了缓存有效时长;其中,当写入所述分布式缓存的任一异步任务ID的缓存有效时长超时时,则从所述分布式缓存中删除所述异步任务ID。7.根据权利要求1所述的方法,还包括:如果所述异步任务ID已写入所述分布式缓存,则丢弃与所述异步任务ID对应的异步任务。8.一种异步任务的调度装置,应用于服务器集群中的任一服务器,其中,所述服务器集群部署了分布式缓存;所述服务器预先绑定了异步任务表;所述装置包括:获取模块,扫描绑定的所述异步任务表获取...

【专利技术属性】
技术研发人员:陶彬贤
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1