一种基于串行任务号的通信号卡属性异步修改方法及系统与流程

摘要: 本发明属于计算机,尤其涉及一种基于串行任务号的通信号卡属性异步修改方法及系统。背景技术:1、在异步任务调度领域中,现有技术主要依赖简单队列或手动调度机制处理号卡...
一种基于串行任务号的通信号卡属性异步修改方法及系统与流程

本发明属于计算机,尤其涉及一种基于串行任务号的通信号卡属性异步修改方法及系统。

背景技术:

1、在异步任务调度领域中,现有技术主要依赖简单队列或手动调度机制处理号卡属性修改请求。这些方法在处理多接口异步操作时存在显著局限,即无法自动感知任务状态变化,需人工干预查询执行状态;并发提交任务易触发接口报错,因同一号卡存在未完成任务时系统禁止新请求;此外,状态管理缺乏原子性,导致更新不一致,且重试策略僵化,无法适应网络超时或接口错误等多样化失败场景,降低了系统可靠性和效率。为了解决上述问题,现有技术通常采用任务编排和依赖关系构建串行任务链,支持同步与异步任务下发,或基于单线程异步框架的任务并行处理方法,或分布式文件异步处理服务,利用指挥端构建可执行序列对象调度子任务,以实现异步任务调度。但这些方法存在无法自动感知任务状态变化,依赖定时扫描或人工查询,导致响应延迟和操作效率低下、并发任务提交缺乏有效串行化控制等问题。因此如何更好地实现号卡属性修改请求成为亟待解决的问题。

技术实现思路

1、鉴于以上现有技术的不足,发明的目的在于提供一种基于串行任务号的通信号卡属性异步修改方法及系统。

2、本发明的第一方面,提出了一种基于串行任务号的通信号卡属性异步修改方法,包括:s1,接收号卡属性修改请求,生成所述号卡属性修改请求的唯一任务id和串行任务号并将任务信息记录至任务表,同时将所述号卡属性修改请求对应任务的状态标记为待执行,其中,同一号卡的所有属性修改任务共享同一所述串行任务号;s2,检测所述串行任务号对应的任务状态,在确定所述任务状态中不存在执行中状态或待执行状态的情况下,从所述串行任务号下的所有待执行任务中提取目标子任务,并基于所述目标子任务,向通信服务端发送请求,同时将请求信息记录至请求信息表中;s3,周期性查询所述请求信息表中所有任务状态为非已完成的任务记录,基于调用接口获取所述非已完成的任务记录的当前执行状态,并基于所述当前执行状态执行对应操作,所述当前执行状态包括执行中、执行成功和执行失败;s4,周期性查询所述任务表,在确定同一所述串行任务号下的所有子任务的状态均为已完成状态的情况下,终止修改流程,执行清理工作,其中,所述任务表和所述请求信息表的状态更新操作,均在同一数据库事务中执行。

3、进一步地,生成所述号卡属性修改请求的唯一任务id和串行任务号,包括:基于第一预设格式,生成所述唯一任务id;基于第二预设格式,生成所述串行任务号;其中,所述任务表包括所述唯一任务id、任务名称、所述号卡属性修改请求对应的所述通信服务端、所述号卡属性修改请求的请求参数、所述号卡属性修改请求的请求顺序、所述串行任务号和任务状态。

4、进一步地,在确定所述任务状态中存在所述执行中状态或所述待执行状态的情况下,保持所述号卡属性修改请求对应任务的状态标记为所述待执行状态。

5、进一步地,从所述串行任务号下的所有待执行任务中提取目标子任务,包括:获取所述串行任务号下的所述所有待执行任务;确定所述所有待执行任务中对应请求携带的请求顺序字段,并将所述请求顺序字段对应数值最小的子任务作为所述目标子任务;其中,基于所述目标子任务,向通信服务端发送请求,包括:基于所述目标子任务,向所述通信服务端的属性修改接口发送http或https请求,其中,所述http或所述https请求携带所述唯一任务id和修改参数;其中,所述请求信息表包括任务的所述唯一任务id、请求时间、初始状态、重试次数,其中,所述初始状态设置为执行中,所述重试次数的初始值为零。

6、进一步地,基于所述当前执行状态执行对应操作,包括:所述当前执行状态为所述执行失败的情况下,判断所述非已完成的任务记录对应任务的重试次数是否超过预设阈值;若否,确定所述执行失败的类型,在所述类型为网络超时或连接失败的情况下,采用指数退避重试机制重新向所述通信服务端发送请求;在所述类型为接口返回预设错误码的情况下,采用固定间隔重试机制重新向所述通信服务端发送请求,其中,所述预设错误码的优先级越高,所述固定间隔越短;若是,将所述非已完成的任务记录对应任务的当前执行状态标记为最终失败,不再重试。

7、进一步地,基于所述当前执行状态执行对应操作,包括:所述当前执行状态为所述执行成功的情况下,将所述任务表中所述非已完成的任务记录更新为已完成状态,且查询同一所述串行任务号下,是否存在请求顺序字段对应数值最小且当前状态为未执行的子任务;若存在,向所述通信服务端发送请求,并同步更新所述请求信息表和所述任务表中的任务状态;若不存在,周期性查询所述任务表,在确定同一所述串行任务号下的所有子任务的状态均为已完成状态的情况下,终止修改流程,执行清理工作。

8、进一步地,基于所述当前执行状态执行对应操作,包括:所述当前执行状态为所述执行中的情况下,则跳过本次轮询,等待下次周期性查询。

9、本发明的第二方面,提出了一种基于串行任务号的通信号卡属性异步修改系统,包括:生成模块,用于接收号卡属性修改请求,生成所述号卡属性修改请求的唯一任务id和串行任务号并将任务信息记录至任务表,同时将所述号卡属性修改请求对应任务的状态标记为待执行,其中,同一号卡的所有属性修改任务共享同一所述串行任务号;发送模块,用于检测所述串行任务号对应的任务状态,在确定所述任务状态中不存在执行中状态或待执行状态的情况下,从所述串行任务号下的所有待执行任务中提取目标子任务,并基于所述目标子任务,向通信服务端发送请求,同时将请求信息记录至请求信息表中;执行模块,用于周期性查询所述请求信息表中所有任务状态为非已完成的任务记录,基于调用接口获取所述非已完成的任务记录的当前执行状态,并基于所述当前执行状态执行对应操作,所述当前执行状态包括执行中、执行成功和执行失败;查询模块,用于周期性查询所述任务表,在确定同一所述串行任务号下的所有子任务的状态均为已完成状态的情况下,终止修改流程,执行清理工作,其中,所述任务表和所述请求信息表的状态更新操作,均在同一数据库事务中执行。

10、本发明的第三方面,提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明第一方面中任一项所述的方法。

11、本发明的第四方面,提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本发明第一方面中任一项所述的方法。

12、本发明有益效果如下:

13、本发明所述的基于串行任务号的通信号卡属性异步修改方法及系统,接收号卡属性修改请求,生成号卡属性修改请求的唯一任务id和串行任务号并将任务信息记录至任务表,同时将号卡属性修改请求对应任务的状态标记为待执行,其中,同一号卡的所有属性修改任务共享同一串行任务号;检测串行任务号对应的任务状态,在确定任务状态中不存在执行中状态或待执行状态的情况下,从串行任务号下的所有待执行任务中提取目标子任务,并基于目标子任务,向通信服务端发送请求,同时将请求信息记录至请求信息表中;周期性查询请求信息表中所有任务状态为非已完成的任务记录,基于调用接口获取非已完成的任务记录的当前执行状态,并基于当前执行状态执行对应操作,当前执行状态包括执行中、执行成功和执行失败;周期性查询任务表,在确定同一串行任务号下的所有子任务的状态均为已完成状态的情况下,终止修改流程,执行清理工作,其中,任务表和请求信息表的状态更新操作,均在同一数据库事务中执行。该方法通过引入串行任务号实现同一号卡多属性修改请求的顺序串行执行,结合任务表与请求记录表的双层状态管理及数据库事务保障,有效避免了并发冲突和状态不一致问题;同时利用周期性轮询与状态驱动机制,能够异步感知任务执行进度并自动触发后续任务流转,在保证号卡属性修改流程顺序正确性的基础上,提升了系统的高并发处理能力和资源利用效率,并通过完成状态判定确保整个串行流程可靠终结,该方法提升了任务执行的自动化、可靠性和效率。