一种计算机中的任务分配方法及系统技术方案

技术编号:15113040 阅读:74 留言:0更新日期:2017-04-09 03:46
本发明专利技术提供一种计算机中的任务分配方法及系统,用于将m个任务池中的任务分配给p个进程,每个任务池具有n个存储单元,方法首先对p个进程按顺序进行排列,得到进程队列,然后在m个任务池的共m×n个存储单元组成的二维矩阵中,按照行列的排列顺序将任务分配给进程。本发明专利技术是将多个任务池的存储单元看作是一个二维矩阵,然后将矩阵中的元素按顺序分配给进程,这样使得每个任务池拥有的进程数、每个进程的占有的任务池都能保证均衡,从而实现进程的负载均衡及保证任务被高效执行。

【技术实现步骤摘要】

本专利技术属于计算机领域,尤其涉及一种计算机中的任务分配方法及系统
技术介绍
在软件系统中有许多业务场景都需要定时处理任务,处理这些任务的主体通常由“进程”承担。在任务量小的情况下,一个“进程”即可完成这些任务。但在任务量大,可靠性要求高的情况下,不得不采用分布式多线程的模式来处理。一旦涉及到多线程模式,那就牵涉出了任务如何在这些“进程”之间分配的问题。Quartz是OpenSymphony开源组织在Jobscheduling领域的一个Java开源项目。Quartz框架的核心是调度器,它负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是进程和进程管理。为确保可伸缩性,Quartz采用了基于多进程的架构。启动时,框架初始化一套worker进程,这套进程被调度器用来执行预定的任务,这样Quartz就能并发运行多个任务。Quartz依赖一套松耦合的进程池管理部件来管理线程环境。<br>简单说来,Qu本文档来自技高网...

【技术保护点】
一种计算机中的任务分配方法,用于将m个任务池中的任务分配给p个进程,其特征在于,所述m个任务池依次排列,每个任务池具有n个存储单元,方法包括:S1,对所述p个进程按顺序进行排列,得到进程队列;S2,将第i个任务池的第j个存储单元中的任务分配给第k个进程,其中,若的余数等于0,则k等于p,否则k等于的余数,m、n、p、i、j、k均为大于等于1的整数,其中,1≤i≤m,1≤j≤n,1≤k≤p。

【技术特征摘要】
1.一种计算机中的任务分配方法,用于将m个任务池中的任务分配
给p个进程,其特征在于,所述m个任务池依次排列,每个任务池具有n
个存储单元,方法包括:
S1,对所述p个进程按顺序进行排列,得到进程队列;
S2,将第i个任务池的第j个存储单元中的任务分配给第k个进程,
其中,若的余数等于0,则k等于p,否则k等于的
余数,m、n、p、i、j、k均为大于等于1的整数,其中,1≤i≤m,1≤j
≤n,1≤k≤p。
2.根据权利要求1所述的计算机中的任务分配方法,其特征在于,
在所述步骤S2之后,若所述p个进程中的一个进程结束,则在进程队列
中删除该进程,并令p=p-1,接着,执行所述步骤S1~S2。
3.根据权利要求1所述的计算机中的任务分配方法,其特征在于,
在所述步骤S2之后,若有新的进程启动,则将该加入新的进程至所述进
程队列中,并令p=p+1,接着,执行所述步骤S1~S2。
4.根据权利要求1所述的计算机中的任务分配方法,其特征在于,
在所述步骤S1之前,包括:
所述p个进程中的每个进程在启动时,为该进程分配一个标识符。
5.根据权利要求4所述的计算机中的任务分配方法,其特征在于,
所述步骤S1包括:
获取所述p个进程中每个进程的标识符,根据所述标识符的大小,对
所述p个进程进行排列,得到进程队列。
6.根据权利要求1所述的计算机中的任务分配方法,其特征在于,
在所述步骤S1中,将所述进程队列中的第一个进程作为主线程,用
于执行所述步骤S2。
7.一种计算机中的任务分配系统...

【专利技术属性】
技术研发人员:黄平
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1