System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库管理,尤其涉及一种任务处理方法、装置、设备及计算机可读存储介质。
技术介绍
1、随着任务复杂度的上升,为了保证任务处理的性能,可以将任务的业务逻辑转为异步处理,也即,每个任务可以独立执行,不需要等待前一个任务完成。然而,在任务的异步处理过程中,当任务被重复转为异步任务并由不同应用或线程执行时,可能出现不同线程执行同一个异步任务的情况,导致任务处理资源被重复消耗,影响任务处理的性能。
技术实现思路
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、本申请中,通过从数据库中确定目标异步任务对应的目标数据库记录,并请求所述目标数据库记录的目标记录锁;若获取到所述目标记录锁,则在执行所述目标异步任务后释放所述目标记录锁。本申请通过在执行目标异步任务前,对目标数据库记录添加记录锁,通过记录锁的互斥机制避免了不同线程同时读写目标数据库记录,从而避免了不同线程并发执行目标异步任务,实现了避免任务处理资源被重复消耗,提高任务处理的性能。
本文档来自技高网...【技术保护点】
1.一种任务处理方法,其特征在于,所述任务处理方法包括以下步骤:
2.如权利要求1所述的任务处理方法,其特征在于,所述若获取到所述目标记录锁,则在执行所述目标异步任务后释放所述目标记录锁的步骤,包括:
3.如权利要求2所述的任务处理方法,其特征在于,所述查询所述目标数据库记录是否为已执行记录的步骤,包括:
4.如权利要求2所述的任务处理方法,其特征在于,所述查询所述目标数据库记录是否为已执行记录的步骤之后,还包括:
5.如权利要求2所述的任务处理方法,其特征在于,所述将所述目标数据库记录标记为所述已执行记录的步骤之后,还包括:
6.如权利要求1所述的任务处理方法,其特征在于,所述确定待执行的目标异步任务对应的目标数据库记录,并对所述数据库记录添加目标记录锁的步骤之前,还包括:
7.如权利要求1至6中任一项所述的任务处理方法,其特征在于,所述并请求所述目标数据库记录的目标记录锁的步骤之后,还包括:
8.一种任务处理装置,其特征在于,所述任务处理装置包括:
9.一种任务处理设备,其特征在于
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有任务处理程序,所述任务处理程序被处理器执行时实现如权利要求1至7中任一项所述的任务处理方法的步骤。
...【技术特征摘要】
1.一种任务处理方法,其特征在于,所述任务处理方法包括以下步骤:
2.如权利要求1所述的任务处理方法,其特征在于,所述若获取到所述目标记录锁,则在执行所述目标异步任务后释放所述目标记录锁的步骤,包括:
3.如权利要求2所述的任务处理方法,其特征在于,所述查询所述目标数据库记录是否为已执行记录的步骤,包括:
4.如权利要求2所述的任务处理方法,其特征在于,所述查询所述目标数据库记录是否为已执行记录的步骤之后,还包括:
5.如权利要求2所述的任务处理方法,其特征在于,所述将所述目标数据库记录标记为所述已执行记录的步骤之后,还包括:
6.如权利要求1所述的任务处理方法,其特征在于,所述确定待执行的目标异步任务对应的目标数...
【专利技术属性】
技术研发人员:余思佳,
申请(专利权)人:招商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。