一种计划任务的处理方法及系统.pdf

上传人:a2 文档编号:970640 上传时间:2018-03-22 格式:PDF 页数:13 大小:623.19KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910132686.9

申请日:

2009.04.07

公开号:

CN101510163A

公开日:

2009.08.19

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F9/46

主分类号:

G06F9/46

申请人:

金蝶软件(中国)有限公司

发明人:

蔡 晟

地址:

518057广东省深圳市南山区深南大道市高新技术产业园区W1-B4

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙)

代理人:

彭愿洁;李文红

PDF下载: PDF下载
内容摘要

本发明公开了一种计划任务的处理方法及系统。一种计划任务的处理方法包括:a)计划任务处理系统接收用户提交的计划任务信息,对所述计划任务信息进行缓存,并执行步骤b);b)根据缓存中各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;c)实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,返回步骤b)。应用本发明技术方案,系统需要维护的任务队列较小,节省了资源的占用。当用户需要修改计划时,也不需要重复对时间表进行添加和删除操作,有效地提高了系统的处理效率。

权利要求书

1、  一种计划任务的处理方法,其特征在于,包括:
a)计划任务处理系统接收用户提交的计划任务信息,对所述计划任务信息进行缓存,并执行步骤b);
b)根据缓存中各个计划任务的执行时刻,将执行时刻最早的计划任务,添加到任务队列中;
c)实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,返回步骤b)。

2、
  根据权利要求1所述的方法,其特征在于,当计划任务队列不为空且接收到用户提交的新增计划任务信息时,所述方法还包括:
判断新增计划任务的运行时刻是否早于当前任务队列中第一个任务的运行时刻,如果是,则将该新增计划任务添加到任务队列中,否则,对该新增计划任务信息进行缓存。

3、
  根据权利要求1所述的方法,其特征在于,当计划任务队列不为空且接收到用户提交的删除计划任务信息时,所述方法还包括:
判断待删除的计划任务是否为当前任务队列中的计划任务;
如果否,则将该计划任务信息从缓存中删除;
如果是,则由任务队列中删除该计划任务,当任务队列为空时,执行所述步骤b)。

4、
  根据权利要求1所述的方法,其特征在于,当计划任务队列不为空且接收到用户提交的修改计划任务信息时,所述方法还包括:
判断待修改的计划任务是否为当前任务队列中的计划任务;
如果否,则在缓存中修改该计划任务的执行时刻;
如果是,则在任务队列中修改该计划任务的执行时刻;如果修改后的执行时刻晚于修改前的执行时刻,则对该计划任务信息进行缓存,并从任务队列中删除;当任务队列为空时,执行所述步骤b)。

5、
  一种计划任务处理系统,其特征在于,包括用户接口单元、队列处理单元和任务执行单元:
所述用户接口单元,用于接收用户提交的计划任务信息,对所述计划任务信息进行缓存,向所述队列处理单元发送队列处理请求;
所述队列处理单元,用于在接收到队列处理请求时,根据缓存中各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;
所述任务执行单元,用于实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,向所述队列处理单元发送队列处理请求。

6、
  根据权利要求5所述的系统,其特征在于,还包括:
新增任务处理单元,用于当所述计划任务队列不为空且接收到用户提交的新增计划任务信息时,
判断新增任务的运行时刻是否早于当前任务队列中第一个任务的运行时刻,如果是,则将该新增任务添加到任务队列中,否则,对该任务信息进行缓存。

7、
  根据权利要求5所述的系统,其特征在于,还包括:
删除任务处理单元,用于当所述计划任务队列不为空且接收到用户提交的删除计划任务信息时,
判断待删除的任务是否为当前任务队列中的任务;
如果否,则将该任务信息从缓存中删除;
如果是,则由任务队列中删除该任务,当任务队列为空时,向所述队列处理单元发送队列处理请求。

8、
  根据权利要求5所述的系统,其特征在于,还包括:
删除任务处理单元,用于当所述计划任务队列不为空且接收到用户提交的删除计划任务信息时,
判断待修改的任务是否为当前任务队列中的任务;
如果否,则在缓存中修改该任务的执行时刻;
如果是,则在任务队列中修改该任务的执行时刻;如果修改后的执行时刻晚于修改前的执行时刻,则对该任务信息进行缓存,并从任务队列中删除;当任务队列为空时,向所述队列处理单元发送队列处理请求。

说明书

一种计划任务的处理方法及系统
技术领域
本发明涉及计算机应用领域,特别是涉及一种计划任务的处理方法及系统。
背景技术
计算机应用中的“任务计划”服务,可以让用户预先指定某些操作或某些程序的执行时间,并且在相应的时间到达时,按照用户的安排来触发操作或程序的执行。这项服务可以方便用户在某一时间集中安排未来一段时间的计划,安排过的任务可以自动执行,无需人工干预,从而提高用户的工作效率,另一方面,还可以起到提醒、备忘的作用。目前,很多操作系统或应用软件都提供类似的服务或功能。
在现有技术中,当用户需要安排多个计划任务,并把相关需求提交给计划任务处理系统时,系统会一次性把用户提交的所有任务的相关信息添加到任务队列中。例如,用户希望系统在10:00执行task1、在11:00执行task2、在13:00执行task3、在14:00执行task4,则系统在接收到用户输入的需求数据之后,会一次性生成如下的时间表:
 

时刻任务10:00task111:00task213:00task314:00task4

表1
后续系统会根据任务队列,实时对系统时钟进行监控,当到达任务队列中的某个任务时刻时,则触发相应的任务执行。
然而在实际应用中,计划经常存在不确定因素,用户往往需要对所确定的计划任务随时进行变更。在现有技术中,系统接收到用户所提交的计划变更请求后,需要将之前在任务队列中所添加的任务信息删除,然后重新添加新的任务信息,维护任务队列需要占用系统资源,而事实上,之前所添加的任务信息根本没有被用到,影响了系统的处理效率,造成系统资源的浪费。当用户需要对计划进行较大修改时,这种情况则更为明显。
发明内容
有鉴于此,本发明提供了一种计划任务的处理方法及系统,以解决现有方案针对计划任务变更的情况处理效率较低的问题,技术方案如下:
一种计划任务的处理方法,包括:
a)计划任务处理系统接收用户提交的计划任务信息,对所述计划任务信息进行缓存,并执行步骤b);
b)根据缓存中各个计划任务的执行时刻,将执行时刻最早的计划任务,添加到任务队列中;
c)实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,返回步骤b)。
一种计划任务处理系统,包括用户接口单元、队列处理单元和任务执行单元:
所述用户接口单元,用于接收用户提交的计划任务信息,对所述计划任务信息进行缓存,向所述队列处理单元发送队列处理请求;
所述队列处理单元,用于在接收到队列处理请求时,根据缓存中各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;
所述任务执行单元,用于实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,向所述队列处理单元发送队列处理请求。
以上技术方案,系统在接收到用户制订的计划任务需求后,对相关信息进行缓存。根据任务的执行顺序,每次只将一项任务添加到任务队列中,当该任务被触发执行后,再添加下一项任务。应用本发明技术方案,系统需要维护的任务队列较小,节省了资源的占用。当用户需要修改计划时,也不需要重复对时间表进行添加和删除操作,有效地提高了系统的处理效率。
附图说明
图1为实现本发明计划任务处理方法的流程图;
图2为实现本发明计划任务处理方法的另一种流程图;
图3为本发明计划任务处理系统的一种结构示意图;
图4为本发明计划任务处理系统的另一种结构示意图。
具体实施方式
首先对本发明的一种计划任务的处理方法进行说明,包括:
a)计划任务处理系统接收用户提交的计划任务信息,对所述计划任务信息进行缓存;
b)根据缓存中各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;
c)实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,返回步骤b)。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图对本发明的具体实施方式作进一步的详细说明。
实施例一:
图1所示为本发明一种计划任务的处理方法的流程图,包括以下步骤:
S101,接收用户提交的计划任务信息,并对所述计划任务信息进行缓存;
背景技术中提到的情况为例,用户希望系统在10:00执行task1、在11:00执行task2、在13:00执行task3、在14:00执行task4,将计划任务信息输入系统。信息中至少应包括任务的执行时刻和任务的具体执行方式。系统接收到用户提交的计划任务信息后,可以对这些信息进行缓存,例如以文本或是列表的形式进行缓存。此时系统的任务队列为空,则进一步执行S102。
S102,根据各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;
现有技术中,系统会一次性把用户提交的所有任务的相关信息添加到任务队列中,而在本实施例中,系统仅将需要最早执行的任务添加到任务队列中。
在task1、task2、task3、task4中,需要最早执行的任务为task1,则系统将task1添加到任务队列中,如表2所示。
 时刻任务10:00task1

表2
S103,实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,返回S102.
系统实时对时钟进行监控,当到达task1的执行时刻10:00时,触发task1的执行,由于此时task1已经是任务队列中的最后一个任务,因此系统在缓存中剩下的任务中选择最早需要执行的任务,这里所说的剩下的任务,可以理解为要在当前时间之后执行的任务,在本实施例中即为task2、task3、task4,而其中task2为最早要执行的任务,将task2的相关信息添加到任务队列中,如表3所示:(已执行的任务task1可以从任务队列中删除)
 时刻任务11:00task2

表3
同样道理,当task被触发执行后,系统将task3添加到任务队列中,如此循环,直到用户提交的所有任务执行完毕。图2以时间轴的方式示出了整个系统的处理流程。
本领域技术人员可以理解,用户所提交的任务,也可以是需要周期性重复执行的任务。对于这类任务,系统会根据用户的需求为其添加特殊的标识,而上述的处理方法依然适用,即:在添加该类任务时,每次仅在任务队列中添加一条该任务的信息。不同之处在于,将任务添加到队列之后,需要在缓存中将该任务的运行时刻加上一个周期,以保证其周期性执行。例如,假设上述task2是要求以4小时为周期执行的任务,则系统把task2添加到任务队列后,会将缓存中该任务的运行时刻修改为15:00,以便下次对其进行添加。
与现有技术相比,在本实施例中,系统每次仅将距当前时间最近的任务添加到任务队列中,当该任务执行后再添加下一个任务。应用这种方案,系统每次添加任务时需要处理的任务量较少,并且,当用户需要对已提交的计划做变更时,系统仅需要做很少的反处理,下面的实施例将分别介绍在任务队列不为空时,当用户需要增加、删除、修改计划任务时,系统的相应处理方法。
实施例二:
本实施例将对增加计划任务的处理方法进行说明。
用户可以在系统运行过程中增加新的计划任务。当系统接收到用户的新增计划任务信息后,会将新增任务的运行时刻t0,与当前任务队列中第一个任务的运行时刻t1进行比较,如果t0早于t1,则将该新增任务添加到任务队列中,否则,对该任务信息进行缓存。
例如,当前的任务队列如表3所示,用户新增了需要在10:50执行的任务task5,由于task5的运行时刻早于当前队列中task3的运行时刻,因此系统会将task5的信息添加到任务队列中,如表4所示:
 时刻任务10:50task511:00task2

表4
后续系统仍然可以按照S102-S103中所述的步骤进行处理:当到达task5的执行时刻10:50时,触发task5的执行,由于task5并不是任务队列中的最后一个任务,所以此时不向队列中添加新任务。如果在task2的执行时刻11:00到达之前用户没有增加新的任务,则在到达11:00时,task2将是任务队列中的最后一个任务,此时再继续添加新任务。
实施例三:
本实施例将对删除计划任务的处理方法进行说明。
当系统收到用户的删除计划任务信息后,按照以下流程进行处理:
判断待删除的任务是否为当前任务队列中的任务。如果否,则直接将该任务的信息从缓存中删除。如果是,则由任务队列中删除该任务,并且进一步判断任务队列中是否还有其他任务,如果是则不执行任何动作,如果否,则执行S102。
假设当前的任务任务队列如表3所示,系统接收到删除task2的指令,则将task2的相关信息由任务队列中删除,而此时任务队列中已经没有其他任务,因此执行S102,继续将当前缓存中执行时刻最早的任务添加到任务队列中。
实施例四:
本实施例将对修改计划任务的处理方法进行说明。
用户所提交的任务信息中,包括任务的执行时刻和任务的具体执行方式两部分,本实施例是针对修改任务执行时刻的情况而言。对于仅需对任务的具体执行方式进行修改的情况,与本发明方案无关,这里不再赘述。
当系统收到用户的修改计划任务信息后,如果待修改的任务不在任务队列中,则直接在缓存中修改该任务的信息,以下针对待修改的任务在任务队列中的情况进行说明:
首先在任务队列中修改该任务的执行时间,然后需要进一步判断修改后的执行时刻是否晚于修改前的执行时刻,如果否,则不执行任何动作,如果是,则对该任务信息进行缓存,并从任务队列中删除。此时,如果任务队列中已经没有其他任务,还需要进一步执行S102。即重新在缓存中对任务的执行时刻进行排序,并将执行时刻最早的任务添加到任务队列中。
以上几个实施例,分别对增加、删除或修改计划任务的处理方法进行了说明。可以看出,由于每次只将一项任务添加到任务队列中,因此系统需要维护的任务队列较小。当用户需要修改计划时,也不需要重复对时间表进行添加和删除操作,有效地提高了系统的处理效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;也可以在分布式计算环境中实现本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例,本发明实施例还提供一种计划任务处理系统,参见图3所示,包括用户接口单元310、队列处理单元320和任务执行单元330:
所述用户接口单元310,用于接收用户提交的计划任务信息,对所述计划任务信息进行缓存,向所述队列处理单元320发送队列处理请求;
所述队列处理单元320,用于在接收到队列处理请求时,根据缓存中各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;
所述任务执行单元330,用于实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,向所述队列处理单元发送队列处理请求。
参见图4所示,上述的系统中还可以包括:
新增任务处理单元340,用于当所述计划任务队列不为空且接收到用户提交的新增计划任务信息时,
判断新增任务的运行时刻是否早于当前任务队列中第一个任务的运行时刻,如果是,则将该新增任务添加到任务队列中,否则,对该任务信息进行缓存。
上述的系统中还可以包括:
删除任务处理单元350,用于当所述计划任务队列不为空且接收到用户提交的删除计划任务信息时,
判断待删除的任务是否为当前任务队列中的任务;
如果否,则将该任务信息从缓存中删除;
如果是,则由任务队列中删除该任务,当任务队列为空时,向所述队列处理单元330发送队列处理请求。
上述的系统中还可以包括:
删除任务处理单元360,用于当所述计划任务队列不为空且接收到用户提交的删除计划任务信息时,
判断待修改的任务是否为当前任务队列中的任务;
如果否,则在缓存中修改该任务的执行时刻;
如果是,则在任务队列中修改该任务的执行时刻;如果修改后的执行时刻晚于修改前的执行时刻,则对该任务信息进行缓存,并从任务队列中删除;当任务队列为空时,向所述队列处理单元330发送队列处理请求。
对于系统实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

一种计划任务的处理方法及系统.pdf_第1页
第1页 / 共13页
一种计划任务的处理方法及系统.pdf_第2页
第2页 / 共13页
一种计划任务的处理方法及系统.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《一种计划任务的处理方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种计划任务的处理方法及系统.pdf(13页珍藏版)》请在专利查询网上搜索。

本发明公开了一种计划任务的处理方法及系统。一种计划任务的处理方法包括:a)计划任务处理系统接收用户提交的计划任务信息,对所述计划任务信息进行缓存,并执行步骤b);b)根据缓存中各个计划任务的执行时刻,将执行时刻最早的任务,添加到任务队列中;c)实时对系统时钟进行监控,并根据所述任务队列顺序触发执行任务,当所述任务队列中的最后一个任务被触发执行时,返回步骤b)。应用本发明技术方案,系统需要维护的任务。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1