[发明专利]任务处理方法和装置有效
申请号: | 201010299851.2 | 申请日: | 2010-09-29 |
公开(公告)号: | CN101963922A | 公开(公告)日: | 2011-02-02 |
发明(设计)人: | 王昊沙 | 申请(专利权)人: | 用友软件股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/52 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 任务 处理 方法 装置 | ||
技术领域
本发明涉及任务处理技术,尤其涉及任务处理方法和装置。
背景技术
在企业管理软件中,存在大量的异步任务,比如发送各种通知(消息,短信,电子邮件等),执行某些自动动作(自动调用服务等)。随着用户压力的增加,在短时间内会产生大量的这些任务。已有的解决方法一般分为两种:一种是将这些任务排入一个先入先出(FIFO)队列,然后一个个按顺序执行;另外一种则是通过一个线程池,多线程的将任务并行执行。前者的优点是不会由于任务过多而占用大量的系统资源,缺点是浪费了计算机并行处理能力,效率低下。后者的优点是尽可能的最大化利用了系统的并行计算能力,但缺点也很明显,一方面由于同时执行的任务可能存在约束或竞争关系,导致需要线程同步,就带来了额外的系统开销(线程切换,锁竞争等),在任务之间约束和竞争关系比较多的情况下,反而会造成系统效率低下,另一方面由于大部分线程池无法提供很好的伸缩性(负载可控),造成大负载情况下对系统资源的过度占用,极大的影响了用户体验。
因此,需要一种任务处理方式,能够最大限度地利用计算机的并行能力,而又避免由于任务之间的约束带来的线程同步,耗费系统资源的问题。
发明内容
鉴于以上,本发明的技术方案所要解决的技术问题在于,提供一种任务处理方法和装置,能够最大限度地利用计算机的并行能力,而又避免由于任务之间的约束带来的线程同步,耗费系统资源的问题。
本发明提供了一种任务处理方法,包括:步骤102,接收输入的任务;步骤104,判断所述任务是否具有同步属性,在所述任务具有同步属性时,进入步骤106,在所述任务不具有同步属性时,进入步骤110;所述步骤106,根据所述任务的同步属性,在当前执行任务中查找所述任务对应的排他任务;步骤108,在当前执行任务中存在所述任务对应的排他任务时,不执行所述任务,直至所述当前执行任务中不存在所述任务对应的排他任务,所述步骤110,执行所述任务。通过该技术方案,可以避免同时执行任务时由于相互竞争导致对系统资源的争夺,保证了执行任务的次序和效率,合理利用计算机的系统资源。
在上述技术方案中,优选地,所述步骤108中,在当前执行任务中存在所述任务对应的排他任务时,根据所述任务的同步属性,将所述任务分配至对应的排他队列,在所述当前执行任务中不存在所述任务对应的排他任务时,从所述任务对应的排他队列里取出所述任务,以待执行。
在上述技术方案中,优选地,排他队列中的所有任务均具有优先级,从所述排他队列中取出任务时,先取出优先级最高的任务。通过该技术方案,通过优先级调节,保证了任务执行的次序。
在上述技术方案中,优选地,在所述步骤110中,所述任务通过线程池提供的线程执行。
在上述技术方案中,优选地,在所述步骤110中,所述当前执行任务占用所述线程池的所有线程时,使所述任务进入等待状态,直至所述线程池中存在空余线程,使用所述空余线程执行所述任务。通过该技术方案,可以很好地控制系统的伸缩性。
在上述技术方案中,优选地,处于所述等待状态的所有任务均具有优先级,在所述线程池里仅出现一个空余线程时,将所述一个空余线程用于执行优先级最高的任务。通过该技术方案,使得等待队列中的任务也具有优先级。
在上述技术方案中,优选地,所述步骤108中,所述任务具有多个同步属性,以及在当前执行任务中存在对应任务的不同同步属性的多个排他任务,根据所述不同同步属性的优先程度,将所述任务分配至优先程度最高的同步属性对应的排他队列,排他队列包括:全局排他队列,所述全局排他队列中的任务只能单独执行;类别排他队列,所述类别排他队列中的任务不能与所述类别排他队列对应类型的任务同时执行。
通过上述技术方案,通过实现同步队列将具有约束关系的任务进行同步排队,避免了任务之间的竞争,然后利用优先级调节队列中任务的执行滞后性,同时通过等待队列和设置任务数可同时执行任务的最大数目,使负载能力可控,具有良好的系统伸缩性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友软件股份有限公司,未经用友软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010299851.2/2.html,转载请声明来源钻瓜专利网。