CN107908486A - 一种周期执行任务的方法及装置 - Google Patents
一种周期执行任务的方法及装置 Download PDFInfo
- Publication number
- CN107908486A CN107908486A CN201711079013.2A CN201711079013A CN107908486A CN 107908486 A CN107908486 A CN 107908486A CN 201711079013 A CN201711079013 A CN 201711079013A CN 107908486 A CN107908486 A CN 107908486A
- Authority
- CN
- China
- Prior art keywords
- task
- current
- called
- definition
- pending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000006978 adaptation Effects 0.000 claims 1
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种周期执行任务的方法及装置,该方法包括:确定若干任务定义;周期性的根据各任务定义对应的执行时间,从该若干任务定义中确定出至少一个第一任务定义;利用循环线程,周期性的针对各第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的适配器,通过调用当前待调用对象,以执行当前第一任务定义中包括的与当前待调用对象对应的待执行任务。对于周期性执行的各任务定义,可以利用不同对象对应的适配器以分别调用各对象,从而可以执行各对象对应的任务,故本方案能够适用于不同对象的调用。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种周期执行任务的方法及装置。
背景技术
为解决预期需求,比如经常将所需数据提取归集、经常同步业务数据、经常收发消息等,一般需要定期调用相应对象以执行任务。
目前,为满足需求,开发人员可以开发特定的定制化实现。比如,可以开发一段循环代码程序以周期执行任务。
但是,这一定制化实现难以复用,不适用于不同对象的调用。
发明内容
本发明提供了一种周期执行任务的方法及装置,能够适用于不同对象的调用。
为了达到上述目的,本发明是通过如下技术方案实现的:
一方面,本发明提供了一种周期执行任务的方法,确定第一数量的任务定义,其中,每一个所述任务定义均包括至少一种待执行任务,每一个所述任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同;还包括:
S1:基于预设的第一时间间隔,周期性的根据每一个所述执行时间,从所述第一数量的任务定义中确定出至少一个第一任务定义;
S2:利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个所述第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,执行S3;
S3:利用任一空闲线程,针对所述当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用所述当前待调用对象,以执行所述当前第一任务定义中包括的与所述当前待调用对象对应的待执行任务。
进一步地,所述至少一种待调用对象包括:存储过程、DLL(Dynamic LinkLibrary,动态链接库)接口、web服务接口中的任意一种或多种;
所述存储过程对应的待执行任务为存储过程任务;
所述DLL接口对应的待执行任务为DLL任务;
所述web服务接口对应的待执行任务为web服务任务。
进一步地,该方法还包括:在确定出所述当前第一任务定义包括的每一种待执行任务均执行完成时,将所述当前第一任务定义从所述至少一个第一任务定义中移除。
进一步地,所述确定第一数量的任务定义,包括:针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从所述当前业务系统实例所在的数据库中,确定所述当前业务系统实例包括的每一个任务定义;其中,确定出的所有任务定义的个数为第一数量。
进一步地,所述循环线程与UI(User Interface,用户界面)线程相分离。
另一方面,本发明提供了一种周期执行任务的装置,包括:
确定单元,用于确定第一数量的任务定义,其中,每一个所述任务定义均包括至少一种待执行任务,每一个所述任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同;
内存,用于基于预设的第一时间间隔,周期性的根据每一个所述执行时间,从所述第一数量的任务定义中确定出至少一个第一任务定义;利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个所述第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对所述当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用所述当前待调用对象,以执行所述当前第一任务定义中包括的与所述当前待调用对象对应的待执行任务。
进一步地,所述至少一种待调用对象包括:存储过程、DLL接口、web服务接口中的任意一种或多种;
所述存储过程对应的待执行任务为存储过程任务;
所述DLL接口对应的待执行任务为DLL任务;
所述web服务接口对应的待执行任务为web服务任务。
进一步地,所述内存,还用于在确定出所述当前第一任务定义包括的每一种待执行任务均执行完成时,将所述当前第一任务定义从所述至少一个第一任务定义中移除。
进一步地,所述确定单元,具体用于针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从所述当前业务系统实例所在的数据库中,确定所述当前业务系统实例包括的每一个任务定义;其中,确定出的所有任务定义的个数为第一数量。
进一步地,所述循环线程与UI线程相分离。
本发明提供了一种周期执行任务的方法及装置,该方法包括:确定若干任务定义;周期性的根据各任务定义对应的执行时间,从该若干任务定义中确定出至少一个第一任务定义;利用循环线程,周期性的针对各第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的适配器,通过调用当前待调用对象,以执行当前第一任务定义中包括的与当前待调用对象对应的待执行任务。对于周期性执行的各任务定义,可以利用不同对象对应的适配器以分别调用各对象,从而可以执行各对象对应的任务,故本发明能够适用于不同对象的调用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种周期执行任务的方法的流程图;
图2是本发明一实施例提供的另一种周期执行任务的方法的流程图;
图3是本发明一实施例提供的一种周期执行任务的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种周期执行任务的方法,可以包括以下步骤:
步骤101:确定第一数量的任务定义,其中,每一个所述任务定义均包括至少一种待执行任务,每一个所述任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同。
步骤102:基于预设的第一时间间隔,周期性的根据每一个所述执行时间,从所述第一数量的任务定义中确定出至少一个第一任务定义。
步骤103:利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个所述第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,执行步骤104,否则,结束当前流程。
步骤104:利用任一空闲线程,针对所述当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用所述当前待调用对象,以执行所述当前第一任务定义中包括的与所述当前待调用对象对应的待执行任务。
本发明实施例提供了一种周期执行任务的方法,确定若干任务定义;周期性的根据各任务定义对应的执行时间,从该若干任务定义中确定出至少一个第一任务定义;利用循环线程,周期性的针对各第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的适配器,通过调用当前待调用对象,以执行当前第一任务定义中包括的与当前待调用对象对应的待执行任务。对于周期性执行的各任务定义,可以利用不同对象对应的适配器以分别调用各对象,从而可以执行各对象对应的任务,故本发明实施例能够适用于不同对象的调用。
在本发明的一个实施例中,所述确定第一数量的任务定义,包括:针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从所述当前业务系统实例所在的数据库中,确定所述当前业务系统实例包括的每一个任务定义;其中,确定出的所有任务定义的个数为第一数量。
详细地,不同的业务系统实例可以对应于不同的数据库。
详细地,可以基于配置文件的方式定义不同的业务系统实例。比如,可以预设配置文件,该配置文件中可以定义需处理的每一个业务系统实例的配置信息。如此,根据任一业务系统实例的配置信息,即可从该业务系统实例对应的数据库中,确定出该业务系统实例所包括的每一个任务定义。
详细地,通过确定各业务系统实例所包括的每一个任务定义,确定出的任务定义的总数量即可以为上述第一数量。
在本发明一个实施例中,对于任一业务系统实例,可以包括帐套ID、帐套编号、帐套名称、数据服务名称、数据库名称、数据用户、数据用户口令、数据类型、产品线、产品版本等信息。
举例来说,一业务系统实例可以包括下述信息:帐套ID:02-103、帐套编号:001、帐套名称:CRM001、数据服务名称:127.0.0.1、数据库名称:cwbase001、数据用户:lc0019999、数据用户口令:lc0019999、数据类型:MSSQL、产品线:GS、产品版本:5.0。
在本发明一个实施例中,定义有2个业务系统实例的一配置文件的实现代码可以如下所述:
详细地,可以基于数据库,定义任务执行周期和执行任务信息。其中,定义的该执行任务信息,可以为当前数据库对应的任务系统实例所包括的每一个任务定义;定义的该任务执行周期,可以用于确定该每一个任务定义对应的执行时间。
在本发明一个实施例中,对于任一数据库,可以在其中建立任务定义表。其中,该任务定义表中可以包括有该数据库对应的业务系统实例所包括的每一个任务定义。
详细地,该任务定义表可以是定时任务的存储物理表,用于存储各任务定义的任务描述。
在本发明一个实施例中,对于任一任务定义,其任务描述可以参照下述表1。
表1
SDJBRW_ID | /*ID*/ |
SDJBRW_TITLE | /*标题*/ |
SDJBRW_ZDR | /*制单人*/ |
SDJBRW_TYPE | /*类型*/ |
SDJBRW_ZDRQ | /*制单日期*/ |
SDJBRW_ZQMS | /*执行周期模式M月W周D日*/ |
SDJBRW_ZXZQ | /*执行周期几天几周几月*/ |
SDJBRW_ROUNDDAY | /*周期中的第几天逗号隔开可以设置多天*/ |
SDJBRW_KSRQ | /*开始日期*/ |
SDJBRW_JSBZ | /*结束标志*/ |
SDJBRW_JSRQ | /*结束日期*/ |
SDJBRW_LASTTIME | /*最近执行时间*/ |
SDJBRW_ZXRQ | /*最近执行日期*/ |
在本发明一个实施例中,假设各任务定义的执行周期以天、周、月中的任意一个为单位,则上述第一时间间隔可以为1天。比如,可以在每天的00:00这一时刻,从所有任务定义中确定出各第一任务定义,其中,该第一任务定义通常为需要在当天的24h内被执行的任务定义。
举例来说,若任务定义X的执行周期为1周,时间为第1天的8:00,即执行时间为每周的周一8:00执行该任务定义。如此,当前时间为某一周二的00:00时,确定出的至少一个第一任务定义中,将不包括该任务定义X。
在本发明一个实施例中,由于不同任务定义的执行时间不同,为避免遗漏任一任务定义的执行,故上述第二时间间隔的值通常较小,比如,可以为1min。
比如,循环线程每1min轮询一遍当前所有的第一任务定义,以确定各第一任务定义是否达到执行时间,若当前时间为某一周一的8:00时,循环线程可以判断出,已达到上述任务定义X的执行时间,故可以利用一空闲线程来执行该任务定义X。
在本发明的一个实施例中,所述循环线程与UI线程相分离。详细地,通过将循环线程与UI线程相分离,可以使得这一循环过程不影响显示界面的正常显示。
在本发明的一个实施例中,所述至少一种待调用对象包括:存储过程、DLL接口、web服务接口中的任意一种或多种;
所述存储过程对应的待执行任务为存储过程任务;
所述DLL接口对应的待执行任务为DLL任务;
所述web服务接口对应的待执行任务为web服务任务。
详细地,DLL文件为动态链接库文件,又称应用程序拓展,是软件文件类型。
详细地,对于任一任务定义,其包括的待执行任务可以为至少一种,且各种待执行任务的任务个数可以为至少一个。
在本发明一个实施例中,上述适配器可以为开发人员预先写好的一段代码程序。通过一适配器,即可调用该适配器对应的待调用对象,从而可以执行该待调用对象对应的待执行任务。
在本发明一个实施例中,存储过程任务的任务描述可以包括任务ID、分录、存储过程名称、标题描述、参数、参数值、执行顺序等。比如,对于任一存储过程任务,其任务描述可以参照下述表2。
表2
SDJBRWNR_ID | 任务ID |
SDJBRWNR_FLBH | 分录 |
SDJBRWNR_SPNAME | 存储过程名称 |
SDJBRWNR_TITLE | 标题描述 |
SDJBRWNR_CS | 参数 |
SDJBRWNR_CSVAL | 参数值 |
SDJBRWNR_ORDER | 执行顺序 |
在本发明一个实施例中,DLL任务的任务描述可以包括任务ID、分录、任务描述、DLL名称、类名、方法名、参数值、序号、执行时间、执行分钟等。比如,对于任一DLL任务,其任务描述可以参照下述表3。
表3
SDJBRWNRDLL_ID | 任务ID |
SDJBRWNRDLL_FLBH | 分录 |
SDJBRWNRDLL_TITLE | 任务描述 |
SDJBRWNRDLL_DLL | DLL名称 |
SDJBRWNRDLL_CLASSNAME | 类名 |
SDJBRWNRDLL_FUNCTIONNAME | 方法名 |
SDJBRWNRDLL_ARGS | 参数值(多个时使用“,”隔开) |
SDJBRWNRDLL_ORDER | 序号 |
SDJBRWNRDLL_TIME | 执行时间 |
SDJBRWNRDLL_MINUTE | 执行分钟 |
在本发明一个实施例中,web服务任务的任务描述可以包括任务ID、分录、任务描述、WSDL(Web Services Description Language,网络服务描述语言)地址、类名、方法名、参数值、序号、执行时间、执行分钟等。比如,对于任一DLL任务,其任务描述可以参照下述表4。
表4
SDJBRWNRWS_ID | 任务ID |
SDJBRWNRWS_FLBH | 分录 |
SDJBRWNRWS_TITLE | 任务描述 |
SDJBRWNRWS_URL | WSDL地址 |
SDJBRWNRWS_CLASSNAME | 类名 |
SDJBRWNRWS_FUNCTIONNAME | 方法名 |
SDJBRWNRWS_ARGS | 参数值(多个时使用“,”隔开) |
SDJBRWNRWS_ORDER | 序号 |
SDJBRWNRWS_TIME | 执行时间 |
SDJBRWNRWS_MINUTE | 执行分钟 |
在本发明的一个实施例中,该方法可以进一步包括:在确定出所述当前第一任务定义包括的每一种待执行任务均执行完成时,将所述当前第一任务定义从所述至少一个第一任务定义中移除。
详细地,由于循环线程需要周期性的对确定出的至少一个第一任务定义进行判断,故当任一第一任务定义完成执行后,可以将其移除,以减少后续判断次数,从而提高后续判断效率。
在本发明一个实施例中,可以维护一轮询列表,该轮询列表中包括有确定出的每一个第一任务定义。如此,每完成执行一第一任务定义时,即可将其从轮询列表中移除。
在本发明一个实施例中,上述轮询列表中的各第一任务定义还可以按照执行时间的先后顺序进行排序,执行时间越早,排序越靠前。如此,循环线程在任一周期开始时,可以顺序判断每一个第一任务定义,当判断出未达到任一第一任务定义的执行时间时,即可结束判断,即无需判断排序在该第一任务定义的其他第一任务定义。
在本发明一个实施例中,对任一任务定义执行完成时,可以记录当前时间为执行完成时间,并将该执行完成时间同步至该任务定义的任务定义表中,以方便工作人员后期查看各任务定义的执行情况。
如图2所示,本发明一个实施例提供了另一种周期执行任务的方法,具体包括以下步骤:
步骤201:针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从当前业务系统实例所在的数据库中,确定当前业务系统实例包括的每一个任务定义。
详细地,每一个任务定义均包括至少一种待执行任务,每一个任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同。
详细地,至少一种待调用对象可以包括存储过程、DLL接口、web服务接口中的任意一种或多种。其中,存储过程对应的待执行任务为存储过程任务;DLL接口对应的待执行任务为DLL任务;web服务接口对应的待执行任务为web服务任务。
步骤202:基于预设的第一时间间隔,周期性的根据每一个任务定义对应的执行时间,从确定出的全部任务定义中确定出至少一个第一任务定义。
步骤203:利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,执行步骤204,否则,结束当前流程。
详细地,循环线程与UI线程相分离。
步骤204:利用任一空闲线程,针对当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用当前待调用对象,以执行当前第一任务定义中包括的与当前待调用对象对应的待执行任务。
在本发明实施例中,各第一任务定义间异步执行,同一任务定义包括的各待执行任务同步执行。
详细地,对于当前第一任务定义,可以依次调用其对应的每一种待调用对象。调用任一待调用对象后,可以执行当前第一任务定义中包括的与该待调用对象对应的每一个待执行任务。其中,各待执行任务顺序被执行。
步骤205:在确定出当前第一任务定义包括的每一种待执行任务均执行完成时,将当前第一任务定义从确定出的全部任务定义中移除。
在本发明一个实施例中,周期执行任务的关键代码实现可以如下所述:
综上所述,本发明实施例可以任意配置定期调用对象,通过按需定期调用存储过程、DLL接口和web服务接口等第三方接口,以周期性自动进行任务执行,实现自动化的程序处理。
如图3所示,本发明一个实施例提供了一种周期执行任务的装置,包括:
确定单元301,用于确定第一数量的任务定义,其中,每一个所述任务定义均包括至少一种待执行任务,每一个所述任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同;
内存302,用于基于预设的第一时间间隔,周期性的根据每一个所述执行时间,从所述第一数量的任务定义中确定出至少一个第一任务定义;利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个所述第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对所述当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用所述当前待调用对象,以执行所述当前第一任务定义中包括的与所述当前待调用对象对应的待执行任务。
在本发明一个实施例中,所述至少一种待调用对象包括:存储过程、DLL接口、web服务接口中的任意一种或多种;
所述存储过程对应的待执行任务为存储过程任务;
所述DLL接口对应的待执行任务为DLL任务;
所述web服务接口对应的待执行任务为web服务任务。
在本发明一个实施例中,所述内存302,还用于在确定出所述当前第一任务定义包括的每一种待执行任务均执行完成时,将所述当前第一任务定义从所述至少一个第一任务定义中移除。
在本发明一个实施例中,所述确定单元301,具体用于针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从所述当前业务系统实例所在的数据库中,确定所述当前业务系统实例包括的每一个任务定义;其中,确定出的所有任务定义的个数为第一数量。
在本发明一个实施例中,所述循环线程与UI线程相分离。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上所述,本发明的各个实施例至少具有如下有益效果:
1、本发明实施例中,确定若干任务定义;周期性的根据各任务定义对应的执行时间,从该若干任务定义中确定出至少一个第一任务定义;利用循环线程,周期性的针对各第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的适配器,通过调用当前待调用对象,以执行当前第一任务定义中包括的与当前待调用对象对应的待执行任务。对于周期性执行的各任务定义,可以利用不同对象对应的适配器以分别调用各对象,从而可以执行各对象对应的任务,故本发明实施例能够适用于不同对象的调用。
2、本发明实施例中,可以任意配置定期调用对象,通过按需定期调用存储过程、DLL接口和web服务接口等第三方接口,以周期性自动进行任务执行,实现自动化的程序处理。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种周期执行任务的方法,其特征在于,确定第一数量的任务定义,其中,每一个所述任务定义均包括至少一种待执行任务,每一个所述任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同;还包括:
S1:基于预设的第一时间间隔,周期性的根据每一个所述执行时间,从所述第一数量的任务定义中确定出至少一个第一任务定义;
S2:利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个所述第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,执行S3;
S3:利用任一空闲线程,针对所述当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用所述当前待调用对象,以执行所述当前第一任务定义中包括的与所述当前待调用对象对应的待执行任务。
2.根据权利要求1所述的方法,其特征在于,
所述至少一种待调用对象包括:存储过程、动态链接库DLL接口、web服务接口中的任意一种或多种;
所述存储过程对应的待执行任务为存储过程任务;
所述DLL接口对应的待执行任务为DLL任务;
所述web服务接口对应的待执行任务为web服务任务。
3.根据权利要求1所述的方法,其特征在于,
进一步包括:在确定出所述当前第一任务定义包括的每一种待执行任务均执行完成时,将所述当前第一任务定义从所述至少一个第一任务定义中移除。
4.根据权利要求1所述的方法,其特征在于,
所述确定第一数量的任务定义,包括:针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从所述当前业务系统实例所在的数据库中,确定所述当前业务系统实例包括的每一个任务定义;其中,确定出的所有任务定义的个数为第一数量。
5.根据权利要求1至4中任一所述的方法,其特征在于,
所述循环线程与用户界面UI线程相分离。
6.一种周期执行任务的装置,其特征在于,包括:
确定单元,用于确定第一数量的任务定义,其中,每一个所述任务定义均包括至少一种待执行任务,每一个所述任务定义均对应有执行时间和至少一种待调用对象,不同种待执行任务对应的待调用对象不同,不同种待调用对象对应的适配器不同;
内存,用于基于预设的第一时间间隔,周期性的根据每一个所述执行时间,从所述第一数量的任务定义中确定出至少一个第一任务定义;利用预设的循环线程,基于预设的第二时间间隔,周期性的针对每一个所述第一任务定义均执行:判断是否达到当前第一任务定义对应的执行时间,若是,利用任一空闲线程,针对所述当前第一任务定义对应的每一种待调用对象均执行:利用当前待调用对象对应的预设适配器,通过调用所述当前待调用对象,以执行所述当前第一任务定义中包括的与所述当前待调用对象对应的待执行任务。
7.根据权利要求6所述的周期执行任务的装置,其特征在于,
所述至少一种待调用对象包括:存储过程、动态链接库DLL接口、web服务接口中的任意一种或多种;
所述存储过程对应的待执行任务为存储过程任务;
所述DLL接口对应的待执行任务为DLL任务;
所述web服务接口对应的待执行任务为web服务任务。
8.根据权利要求6所述的周期执行任务的装置,其特征在于,
所述内存,还用于在确定出所述当前第一任务定义包括的每一种待执行任务均执行完成时,将所述当前第一任务定义从所述至少一个第一任务定义中移除。
9.根据权利要求6所述的周期执行任务的装置,其特征在于,
所述确定单元,具体用于针对预设配置文件中定义的每一个业务系统实例的配置信息均执行:根据当前业务系统实例的配置信息,从所述当前业务系统实例所在的数据库中,确定所述当前业务系统实例包括的每一个任务定义;其中,确定出的所有任务定义的个数为第一数量。
10.根据权利要求6至9中任一所述的周期执行任务的装置,其特征在于,
所述循环线程与用户界面UI线程相分离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711079013.2A CN107908486A (zh) | 2017-11-06 | 2017-11-06 | 一种周期执行任务的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711079013.2A CN107908486A (zh) | 2017-11-06 | 2017-11-06 | 一种周期执行任务的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107908486A true CN107908486A (zh) | 2018-04-13 |
Family
ID=61843548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711079013.2A Pending CN107908486A (zh) | 2017-11-06 | 2017-11-06 | 一种周期执行任务的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908486A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109741A (zh) * | 2019-05-09 | 2019-08-09 | 北京旷视科技有限公司 | 循环任务的管理方法、装置、电子设备及存储介质 |
CN110941479A (zh) * | 2018-09-25 | 2020-03-31 | 广州虎牙信息科技有限公司 | 任务数据执行方法、服务器以及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073129A1 (en) * | 2000-12-04 | 2002-06-13 | Yu-Chung Wang | Integrated multi-component scheduler for operating systems |
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
CN104391696A (zh) * | 2014-11-13 | 2015-03-04 | 中国建设银行股份有限公司 | 一种自动任务处理方法及装置 |
US20160328261A1 (en) * | 2013-12-27 | 2016-11-10 | Hitachi, Ltd. | Realtime hypervisor with priority interrupt support |
CN106210124A (zh) * | 2016-08-03 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种统一的云数据中心监控系统 |
-
2017
- 2017-11-06 CN CN201711079013.2A patent/CN107908486A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020073129A1 (en) * | 2000-12-04 | 2002-06-13 | Yu-Chung Wang | Integrated multi-component scheduler for operating systems |
CN101887381A (zh) * | 2010-06-22 | 2010-11-17 | 北京伟库电子商务科技有限公司 | 基于Quartz框架的配置定时任务的方法和装置 |
US20160328261A1 (en) * | 2013-12-27 | 2016-11-10 | Hitachi, Ltd. | Realtime hypervisor with priority interrupt support |
CN104391696A (zh) * | 2014-11-13 | 2015-03-04 | 中国建设银行股份有限公司 | 一种自动任务处理方法及装置 |
CN106210124A (zh) * | 2016-08-03 | 2016-12-07 | 浪潮电子信息产业股份有限公司 | 一种统一的云数据中心监控系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941479A (zh) * | 2018-09-25 | 2020-03-31 | 广州虎牙信息科技有限公司 | 任务数据执行方法、服务器以及计算机存储介质 |
CN110109741A (zh) * | 2019-05-09 | 2019-08-09 | 北京旷视科技有限公司 | 循环任务的管理方法、装置、电子设备及存储介质 |
CN110109741B (zh) * | 2019-05-09 | 2021-08-27 | 北京旷视科技有限公司 | 循环任务的管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101567013B (zh) | 一种etl调度的实现方法及装置 | |
CN109901920A (zh) | 任务调度方法及装置、电子终端 | |
CN105487924B (zh) | 一种批处理控制方法及装置 | |
CN108132833A (zh) | 一种基于zookeeper技术的分布式定时任务调度方法和装置 | |
CN106802826A (zh) | 一种基于线程池的业务处理方法及装置 | |
CN106951315B (zh) | 一种基于etl的数据任务调度方法及系统 | |
CN108197155A (zh) | 信息数据同步方法、装置及计算机可读存储介质 | |
CN109271447A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN107908486A (zh) | 一种周期执行任务的方法及装置 | |
JP2018190406A5 (zh) | ||
CN109933414A (zh) | 一种任务调度方法、装置及系统 | |
CN107608772A (zh) | 一种批处理任务配置调度的方法和系统 | |
CN113742044A (zh) | 定时任务管理方法、装置、设备及存储介质 | |
CN107861799A (zh) | 基于多线程环境的任务处理方法及装置 | |
CN109582446A (zh) | 准实时异步批量处理系统、方法、装置和存储介质 | |
CN110019260B (zh) | 一种用户数据的更新方法及相关设备 | |
CN101446906A (zh) | 一种多批处理任务的调度方法及系统 | |
WO2019073156A1 (fr) | Procédé d'exécution de plans de séquencement assurant une communication à faible latence entre tâches temps-réel | |
US20210150487A1 (en) | Surfacing item history in electronic calendar systems | |
EP1938189A1 (en) | Milestone manager | |
CN107958414B (zh) | 一种清除cics系统长交易的方法及系统 | |
CN116089040A (zh) | 业务流程的调度方法及其装置、电子设备及存储介质 | |
CN109298925A (zh) | 一种周期任务的定时启动方法、系统及相关装置 | |
CN109389363A (zh) | 一种基于作业调度的电话查岗方法及装置 | |
CN103970854B (zh) | Sap ecc端与sap bw端之间增量凭证信息同步方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180413 |