一种任务管理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35915551 阅读:13 留言:0更新日期:2022-12-10 10:57
本发明专利技术公开了一种任务管理方法,该方法包括:遍历消息队列中的待处理任务,并根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将当前待处理任务与至少一个运行任务进行双向互斥比对;其中,任务信息包括任务描述信息和任务互斥信息;若至少一个运行任务中不存在当前待处理任务的互斥任务,则通过线程池执行当前待处理任务。本发明专利技术实施例的技术方案,确保了存在互斥行为的互斥任务不同时运行,避免了出现死锁问题,提高了系统安全性能;同时,避免了线程长时间被占用,提高了线程利用率,进而提高了任务处理效率。进而提高了任务处理效率。进而提高了任务处理效率。

【技术实现步骤摘要】
一种任务管理方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,尤其涉及一种任务管理方法、装置、电子设备及存储介质。

技术介绍

[0002]随着计算机技术的不断发展,计算机设备的任务处理能力,尤其是多任务的并发处理能力得到了迅速提高,这也对计算机设备的任务管理能力提出了更高要求。
[0003]现有技术中,计算机设备是将任务请求加入到消息队列,通过多线程分别执行消息队列中的各个待处理任务,而为了避免多个任务同时操作同一个资源时,通常会对资源进行加锁以保证资源安全。
[0004]然而这样的任务处理方式,使得线程被长时间占用,线程的利用率较低,并且常常导致死锁现象发生,同时大量任务处于挂起等待状态,降低了任务处理效率。

技术实现思路

[0005]本专利技术提供了一种任务管理方法、装置、电子设备及存储介质,以解决互斥任务导致的死锁问题。
[0006]根据本专利技术的一方面,提供了一种任务管理方法,包括:
[0007]遍历消息队列中的待处理任务,并根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对;其中,所述任务信息包括任务描述信息和任务互斥信息;
[0008]若所述至少一个运行任务中不存在所述当前待处理任务的互斥任务,则通过线程池执行所述当前待处理任务。
[0009]在根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对之后,还包括:若所述至少一个运行任务中存在所述当前待处理任务的互斥任务,则为所述当前待处理任务设置互斥标签,并将所述当前待处理任务放回所述消息队列;响应于再次遍历到所述当前待处理任务,基于所述互斥标签将所述当前待处理任务,依次与互斥线程中的运行任务以及非互斥线程中的运行任务进行双向互斥比对。根据互斥标签将待处理任务优先与互斥线程中的运行任务进行比对,若确定待处理任务与互斥线程中的运行任务仍然存在互斥,即可直接将该待处理任务放回消息队列,减少了待处理任务的互斥比对次数,提高了互斥比对效率;同时,依次与互斥线程中的运行任务以及非互斥线程中的运行任务进行比对,也确保了互斥比对结果的准确性。
[0010]所述根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对,具体包括:根据任务触发类型对各所述运行任务进行排序;其中,所述任务触发类型包括后台触发任务、定时触发任务和用户触发任务;根据排序结果,将所述当前待处理任务依次与各所述运行任务进行双向
互斥比对。使得待处理任务优先与相同触发类型的运行任务进行互斥比对,进一步提高互斥比对效率。
[0011]所述任务管理方法还包括:响应于获取到任务请求,根据所述任务请求创建新任务;将所述新任务进行初始化,以通过配置文件获取所述新任务的任务互斥信息;将初始化完成的新任务放入所述消息队列。不但减少了任务请求的传输数据量,也避免了对任务请求的互斥信息依赖,同时,配置文件也提高了对互斥任务的管理便利性。
[0012]在根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对之后,还包括:若所述至少一个运行任务中存在所述当前待处理任务的互斥任务,则获取所述互斥任务的预测完成耗时;若所述消息队列的预测遍历时间与所述预测完成耗时的差值大于等于第一预设阈值,则将所述当前待处理任务发送至倒计时队列,并根据所述预测完成耗时为所述当前待处理任务设置倒计时器;响应于检测到所述倒计时器倒计时完成,将所述当前待处理任务与所述至少一个运行任务再次进行双向互斥比对;若所述至少一个运行任务中不存在所述当前待处理任务的互斥任务,则通过线程池执行所述当前待处理任务。通过互斥任务运行结束后出现的空闲线程直接执行当前待处理任务,相比于将当前待处理任务放回消息队列以等待下次遍历,极大地提高了当前待处理任务的处理时效性,也提高了线程利用率,减少了空闲线程的等待时间。
[0013]在根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对之后,还包括:若所述至少一个运行任务中存在所述当前待处理任务的互斥任务,且互斥任务数量小于等于第二预设阈值,则将所述当前待处理任务发送至第一指定互斥任务所在的第一线程中,以在所述第一线程中等待执行所述当前待处理任务;响应于检测到所述第一线程中的所述第一指定互斥任务处理完毕,将所述当前待处理任务与所述至少一个运行任务再次进行双向互斥比对;若所述至少一个运行任务中不存在所述当前待处理任务的互斥任务,则通过所述第一线程执行所述当前待处理任务。在提高待处理任务处理效率的同时,减少了第一线程的空闲等待时间,提高了第一线程的利用率。
[0014]在将所述当前待处理任务与所述至少一个运行任务再次进行双向互斥比对之后,还包括:若所述至少一个运行任务中存在所述当前待处理任务的互斥任务,且互斥任务数量小于等于第二预设阈值,则将所述当前待处理任务发送至第二指定互斥任务所在的第二线程中,以在所述第二线程中等待执行所述当前待处理任务。避免了待处理任务在第一线程中的等待导致第一线程被长时间占用,以此释放被占用的第一线程,而第一线程可以分配给消息队列中的其它待处理任务使用,进一步提高了线程利用率。
[0015]根据本专利技术的另一方面,提供了一种任务管理装置,包括:
[0016]互斥比对执行模块,用于遍历消息队列中的待处理任务,并根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对;其中,所述任务信息包括任务描述信息和任务互斥信息;
[0017]任务处理执行模块,用于若所述至少一个运行任务中不存在所述当前待处理任务的互斥任务,则通过线程池执行所述当前待处理任务。
[0018]根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
[0019]至少一个处理器;以及
[0020]与所述至少一个处理器通信连接的存储器;其中,
[0021]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的任务管理方法。
[0022]根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的任务管理方法。
[0023]本专利技术实施例的技术方案,通过遍历消息队列中的待处理任务,并基于任务描述信息和任务互斥信息,将当前待处理任务与运行任务进行双向互斥比对,若运行任务中不存在当前待处理任务的互斥任务,通过线程池执行当前待处理任务,确保了存在互斥行为的互斥任务不同时运行,避免了死锁现象的发生,提高了系统安全性能;同时,相比于对设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务管理方法,其特征在于,包括:遍历消息队列中的待处理任务,并根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对;其中,所述任务信息包括任务描述信息和任务互斥信息;若所述至少一个运行任务中不存在所述当前待处理任务的互斥任务,则通过线程池执行所述当前待处理任务。2.根据权利要求1所述的方法,其特征在于,在根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对之后,还包括:若所述至少一个运行任务中存在所述当前待处理任务的互斥任务,则为所述当前待处理任务设置互斥标签,并将所述当前待处理任务放回所述消息队列;响应于再次遍历到所述当前待处理任务,基于所述互斥标签将所述当前待处理任务,依次与互斥线程中的运行任务以及非互斥线程中的运行任务进行双向互斥比对。3.根据权利要求1所述的方法,其特征在于,所述根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对,具体包括:根据任务触发类型对各所述运行任务进行排序;其中,所述任务触发类型包括后台触发任务、定时触发任务和用户触发任务;根据排序结果,将所述当前待处理任务依次与各所述运行任务进行双向互斥比对。4.根据权利要求1所述的方法,其特征在于,所述任务管理方法还包括:响应于获取到任务请求,根据所述任务请求创建新任务;将所述新任务进行初始化,以通过配置文件获取所述新任务的任务互斥信息;将初始化完成的新任务放入所述消息队列。5.根据权利要求1所述的方法,其特征在于,在根据当前待处理任务的任务信息以及至少一个运行任务的任务信息,将所述当前待处理任务与所述至少一个运行任务进行双向互斥比对之后,还包括:若所述至少一个运行任务中存在所述当前待处理任务的互斥任务,则获取所述互斥任务的预测完成耗时;若所述消息队列的预测遍历时间与所述预测完成耗时的差值大于等于第一预设阈值,则将所述当前待处理任务发送至倒计时队列,并根据所述预测完成耗时为所述当前待处理任务设置倒计时器;响应于检测到所述倒计时器倒计时完成,将所述当前待处理任务与所述至少一个运行任务再次进行双向互斥比对;若所述至...

【专利技术属性】
技术研发人员:王洪伟崔旭阳陈乃东范竟成甄雨
申请(专利权)人:曙光信息产业股份有限公司
类型:发明
国别省市:

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

1