CN110134512A - 集群服务器执行任务的方法、装置、设备及存储介质 - Google Patents

集群服务器执行任务的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110134512A
CN110134512A CN201910300268.XA CN201910300268A CN110134512A CN 110134512 A CN110134512 A CN 110134512A CN 201910300268 A CN201910300268 A CN 201910300268A CN 110134512 A CN110134512 A CN 110134512A
Authority
CN
China
Prior art keywords
server
task
flag bit
database
value
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.)
Granted
Application number
CN201910300268.XA
Other languages
English (en)
Other versions
CN110134512B (zh
Inventor
陈林
丁磊磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910300268.XA priority Critical patent/CN110134512B/zh
Publication of CN110134512A publication Critical patent/CN110134512A/zh
Priority to PCT/CN2019/119564 priority patent/WO2020211376A1/zh
Application granted granted Critical
Publication of CN110134512B publication Critical patent/CN110134512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请揭示了一种集群服务器执行任务的方法、装置、设备及存储介质,方法包括:集群接收到任务后,通过第一服务器向数据库表中的指定行插入预设数据,数据库表设有主键,预设数据为不同于主键的数据;基于数据库表的唯一约束,判断数据库表的其他行是否存在预设数据;若存在预设数据,则判定第一服务器向数据库表未成功插入预设数据,并将任务添加至数据库的待处理表中,数据库表与待处理表存在关联关系;根据向待处理表中添加各个任务时的先后顺序,通过第二服务器依次执行待处理表中的所有任务,第二服务器为在第一服务器之前已经向数据库表成功插入预设数据的唯一服务器。实现一个任务只被集群中的一台服务器执行。

Description

集群服务器执行任务的方法、装置、设备及存储介质
技术领域
本申请涉及到计算机技术领域,特别是涉及到集群服务器执行任务的方法、装置、设备及存储介质。
背景技术
目前,集群中服务器执行多个有先后顺序的任务时,一般可以根据获取到任务的时间,按照时间顺序,利用集群资源,依次执行各任务,但这种方式很难保证只有一台机器去执行其中一个任务,因此出现任务被重复执行的概率很高。如果通过定时任务框架定时检测,这样存在时间滞后性。
发明内容
本申请的主要目的为提供集群服务器执行任务的方法、装置、设备及存储介质,实现一个任务只被集群中的一台服务器执行的目的。
本申请提出一种集群服务器执行任务的方法,包括:
集群接收到任务后,通过第一服务器向数据库表中的指定行插入预设数据,其中,第一服务器为集群服务器池中的任意一台服务器,数据库表设有主键,预设数据为不同于主键的数据;
基于数据库表的唯一约束,判断数据库表的其他行是否存在预设数据,其中唯一约束为规定数据库表中任意两行都不允许有相同的数据;
若数据库表的其他行存在预设数据,则判定第一服务器向数据库表未成功插入预设数据,并将任务添加至数据库的待处理表中,数据库表与待处理表存在关联关系;
根据向待处理表中添加各个任务时的先后顺序,通过第二服务器依次执行待处理表中的所有任务,第二服务器为在第一服务器之前已经向数据库表成功插入预设数据的唯一服务器。
进一步地,将任务添加至数据库的待处理表中的步骤之前,包括:
通过第二服务器将第二服务器的第一标志位赋值为第一预设值,第一标志位用于标识第二服务器的工作状态,第一标志位赋值为第一预设值用于标识第二服务器正在处理的任务;
添加数据库的第二标志位,第二标志位用于标识任务正在被执行。
进一步地,将任务添加至数据库的待处理表中的步骤之后,包括:
检查第二服务器的第一标志位的值是否为第一预设值;
若第二服务器的第一标志位的值不为第一预设值,则删除预设数据和第二标志位,并通过集群服务器重新向数据库表插入预设数据。
进一步地,通过第二服务器依次执行待处理表中的所有任务的步骤之后,包括:
检查第二服务器是否执行完待处理表中的所有任务;
若是,则通过第二服务器将第二服务器的第一标志位赋值为第二预设值,第一标志位赋值为第二预设值用于标识第二服务器处于待机状态;
删除预设数据和第二标志位。
进一步地,检查第二服务器是否执行完待处理表中的所有任务的步骤之后,还包括:
若第二服务器执行完待处理表中的所有任务,则检查第二标志位和第二服务器的第一标志位是否出现异常,异常包括数据库存在第二标志位,但第二服务器的第一标志位的值为第二预设值,或者数据库不存在第二标志位,但第二服务器的第一标志位的值为第一预设值;
若出现异常,则将第二服务器的第一标志位赋值为第二预设值、删除第二标志位和删除预设数据。
进一步地,判断数据库表的其他行是否存在预设数据的步骤之后,包括:
若数据库表的其他行不存在预设数据,则判定第一服务器向数据库表成功插入预设数据,并通过第一服务器执行任务;
通过第一服务器将第一服务器的第一标志位赋值为第一预设值,第一标志位用于标识第二服务器的工作状态,第一标志位赋值为第一预设值用于标识第一服务器正在执行任务;
添加数据库的第二标志位,第二标志位用于标识任务正在被执行。
进一步地,通过第二服务器依次执行待处理表中的所有任务的步骤之后,还包括:
检查是否接收到新的任务以及检查待处理表中是否存在任务;
若均否,则将第三标志位赋值为第三预设值,第三标志位关联集群中的所有线程,线程包括循环线程和非循环线程,第三标志位赋值为第三预设值用于控制线程退出;
基于第三标志位的赋值为第三预设值,退出非循环线程,以及控制非循环线程的循环结束并退出循环线程,以释放线程资源。
本申请还提出一种集群服务器执行任务的装置,包括:
插入模块,用于集群接收到任务后,通过第一服务器向数据库表中的指定行插入预设数据,其中,第一服务器为集群服务器池中的任意一台服务器,数据库表设有主键,预设数据为不同于主键的数据;
判断模块,用于基于数据库表的唯一约束,判断数据库表的其他行是否存在预设数据,其中唯一约束为规定数据库表中任意两行都不允许有相同的数据;
第一添加模块,用于若数据库表的其他行存在预设数据,则判定第一服务器向数据库表未成功插入预设数据,并将任务添加至数据库的待处理表中,数据库表与待处理表为关联表;
第一执行模块,用于根据向待处理表中添加各个任务时的先后顺序,通过第二服务器依次执行待处理表中的所有任务,第二服务器为在第一服务器之前已经向数据库表成功插入预设数据的唯一服务器。
本申请还提出一种计算机设备,包括存储器和执行器,存储器存储有计算机程序,执行器执行计算机程序时实现上述集群服务器执行任务的方法的步骤。
本申请还提出一种存储介质,其上存储有计算机程序,计算机程序被执行器执行时实现集群服务器执行任务的方法的步骤。
本申请通过服务器向数据库表中插入预设数据,基于数据库表的唯一约束,只能有一台服务器成功插入预设数据,从而实现数据库表中的任务在同一时间只能由一台服务器执行,进而避免出现同一任务被重复执行或并行执行的情况,减少线程资源的占用,提高任务的执行效率;服务器执行任务时,从数据库读取任务数据,以避免服务器在执行任务过程中出现宕机而导致任务未被执行完成,集群中的其他服务器无法获取到未被执行完成的任务来重新执行。
附图说明
图1为本申请一实施例中集群服务器执行任务的方法的步骤示意图;
图2为本申请一实施例中集群服务器执行任务的装置的结构示意图;
图3为本申请一实施例中计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例中集群执行任务的方法,包括:
S1,集群接收到任务后,通过第一服务器向数据库表中的指定行插入预设数据,其中,第一服务器为集群服务器池中的任意一台服务器,数据库表设有主键,预设数据为不同于主键的数据;
S2,基于数据库表的唯一约束,判断数据库表的其他行是否存在预设数据,其中唯一约束为规定数据库表中任意两行都不允许有相同的数据;
S3,若数据库表的其他行存在预设数据,则判定第一服务器向数据库表未成功插入预设数据,并将任务添加至数据库的待处理表中,数据库表与待处理表存在关联关系;
S4,根据向待处理表中添加各个任务时的先后顺序,通过第二服务器依次执行待处理表中的所有任务,第二服务器为在第一服务器之前已经向数据库表成功插入预设数据的唯一服务器。
上述集群包括服务器池、负载调度器和数据库,其中,服务器池包括多个服务器,数据库为多个服务器的共享内存,负载调度器给服务器分发任务。
在上述步骤S1中,上述数据库表为关系型数据库中设有主键(primary key)的表,数据库例如Oracle数据库。上述主键为数据库表中的一个或多个字段,其值用于唯一地表示表中的某一条记录,其中每条记录均有若干个属性。例如数据库表为任务表,包含任务编号、任务名称、任务处理状态等,其中每个任务的任务编号是唯一的,则任务编号就为主键,任务编号的具体数值就为主键ID;由于数据库表设有主键,则必然存在主键约束,所以上述主键为自增长主键,以避免出现主键冲突而导致无法加入任务的数据,例如,当集群接收到新任务时,将新任务的数据加入到数据库表,任务编号为主键,则主键ID+1(即任务编号+1)以作为该新任务的唯一标识。上述插入(insert)预设数据的方式可为通过结构化查询语言(Structured Query Language,SQL)对数据库表进行插入操作。在本实施例中,当任务编号为1(主键ID为1)的任务需要被执行时,集群中的负载调度器向服务器池中的任一空闲服务器发送调用请求(将该服务器记为服务器A),服务器A向数据库表中的指定行(如任务编号为1的任务所在的行)插入预设数据(由于任务主键从“1”开始,所以预设数据如“0”与主键不同),此时,由于主键不能为空,所以预设数据不能作为主键插入数据库表中,但为了保证只有一个相同的预设数据成功插入数据库表,则预设数据可以作为唯一键插入数据库表;进一步地,对于集群后续接收到的一个任务(主键ID为2),也是由负载调度器向服务器池中的任一空闲服务器发送调用请求(将该服务器记为服务器B),并且服务器B也向数据库表中的指定行(如任务编号为2的任务所在的行)插入相同的预设数据(如上述预设数据“0”),此时,服务器A已经向数据库表成功插入预设数据,由于数据库表的唯一约束(唯一键约束),则服务器B无法向数据库表成功插入预设数据,从而保证只有一台服务器能够向数据库表成功插入预设数据。
在上述步骤S2中,上述唯一约束(唯一键约束)用来限制不受主键约束的列上的数据唯一性,其规定表中任意两行在指定列上都不允许有相同的值,但允许空(NULL)。数据库根据各服务器向数据库表插入预设数据的时间先后不同,判定只有最先向数据库表插入预设数据的服务器插入成功,例如,集群中有服务器“A、B、C”,它们几乎同时分别接收到任务编号为“1、2、3”的任务请求,若服务器“A”最先向数据库表中的任务编号为1的任务所在的行插入预设数据“0”,则服务器“A”向数据库表成功插入预设数据,而当服务器“B”或“C”也分别向数据库表中的任务编号为2的任务所在的行、任务编号为3的任务所在的行插入预设数据“0”时,由于数据库表的唯一约束,预设数据“0”与先前服务器“A”插入的预设数据重复,无法唯一标识,所以服务器“B”或“C”插入数据“0”失败,所以只能有一台服务器能够成功插入预设数据。
在上述步骤S3中,当第一服务器向数据库表插入预设数据失败时,则说明在第一服务器向数据库表插入预设数据之前,就已经有服务器成功向数据库表插入了预设数据。为了后续接收到的任务也能按照时间先后顺序正常被执行,则将任务添加至待处理表。进一步地,数据库表为任务表,可以将任务表的任务编号(主键ID)作为待处理表的外键添加至待处理表,即任务表关联待处理表,任务表为主键表,而待处理表相对于任务表来说是外键表。由于任务编号为主键ID,其在任务表中是唯一的,则将任务编号添加到待处理表时,任务编号在待处理表中也是唯一的,所以当第二服务器执行待处理表中的任务时,不会出现重复执行的情况;以及任务编号顺序就是任务被执行的时间顺序,所以第二服务器可以按照任务编号顺序依次执行待处理表中的任务,从而避免要求按照时间先后顺序的每个任务不会被重复或并行执行执行,进而减少线程资源的占用,提高任务的执行效率。
在上述步骤S4中,上述第二服务器执行待处理表中的任务时,从数据库中读取上述任务的任务编号对应的任务数据,而不是将任务数据保存在服务器的内存中,从而服务器在执行任务过程中出现宕机而导致任务未被执行完成时,避免集群中的其他服务器无法获取到未被执行完成的任务来重新执行,保证在服务器执行任务过程出现单点故障时,其他服务器能够从数据库中读取到未被执行完成的任务以重新执行。在一实施例中,第二服务器每执行完一个待处理表中的任务,则删除待处理表中的该任务的任务编号以及清除数据库中该任务的任务数据,以减少内存的占用。
在一实施例中,上述将任务添加至数据库的待处理表中的步骤S3之前,包括:
S301,通过第二服务器将第二服务器的第一标志位赋值为第一预设值,第一标志位用于标识第二服务器的工作状态,第一标志位赋值为第一预设值用于标识第二服务器正在处理任务;
S302,添加数据库的第二标志位,第二标志位用于标识任务正在被执行。
在上述步骤S301中,在第二服务器开始执行任务时,将第二服务器的第一标志位赋值为第一预设值,例如running=true或running=1,以将第二服务器的处理状态标识为正在执行。当其他任务需要被执行时,以便于查询到第二服务器当前处于执行任务的状态,无法立即执行其他任务,进而等待第一服务器执行完当前任务后再执行下一任务,从而实现依次执行需要按时间先后顺序执行的任务。
在上述步骤S302中,添加数据库的第二标志位,以表示当前数据库表中的任务正在被执行,从而集群中的服务器通过查询第二标志位来获取任务是否被执行,当第二标志位存在时,则其他服务器不再获取该任务,进而不会出现该任务被重复执行的情况。在一实施例中,集群中的服务器会检查数据库中的任务是否被执行,即检查数据库的第二标志位是否存在,若存在,则说明数据库中的任务正在被执行中,再检查第二服务器是否真的正在执行任务,即检查第二服务器的第一标志位是否为第一预设值,若是第一预设值,则说明第二服务器正在执行数据库中的任务,以避免数据库的任务显示被执行中,但是第二服务器又没有执行的情况。
在一实施例中,上述将任务添加至数据库的待处理表中的步骤S3之后,包括:
S31,检查第二服务器的第一标志位的值是否为第一预设值;
S32,若第二服务器的第一标志位的值不为第一预设值,则删除预设数据和第二标志位,并通过集群服务器重新向数据库表插入预设数据。
在上述步骤S31中,由于在将任务添加至待处理表之前,第二服务器向数据库表中插入了预设数据,以及数据库存在第二标志位,则说明由第二服务器执行待处理表中的所有任务,而第二标志位表示数据库的任务正在被执行中,但数据库的任务正在被执行不能代表第二服务器一定正在执行数据库的任务,也可能出现第二服务器宕机的情况,所以在将任务添加至待处理表后,集群中其他服务器会通过发送Http请求,以查询第二服务器的第一标志位的赋值是否为第一预设值,避免第二服务器宕机而导致任务被搁置。优选地,为了避免出现查询结果延迟,发送3次Http请求以查询第二服务器的第一标志位的赋值,3次能保证查询结果准确又能减少线程资源的占用。
在上述步骤S32中,当第二标志位存在,而第一标志位的赋值不是第一预设值,即待处理表中有任务被执行,但第一服务器又处于未执行任务的状态,可以说明第一服务器故障,因此,删除第二标志位和数据库表中的预设数据,以告知集群服务器,当前没有服务器正在执行任务,集群服务器则查询待处理表中是否存在任务,若存在,向数据库表中插入相同的预设数据,基于数据库表的唯一约束,只有一台服务器向数据库表成功插入预设数据,并由该服务器执行待处理表中的任务,执行时,向数据库读取任务对应的任务数据,从而在第二服务器宕机后,也能从集群中的其他服务器选出一台服务器继续执行待处理表的任务。
在一实施例中,上述通过第二服务器依次执行待处理表中的所有任务的步骤S4之后,包括:
S41,检查第二服务器是否执行完待处理表中的所有任务;
S42,若是,则通过第二服务器将第二服务器的第一标志位赋值为第二预设值,第一标志位赋值为第二预设值用于标识第二服务器处于待机状态;
S43,删除预设数据和第二标志位。
在上述步骤S41中,在第二服务器每执行完一个任务时,第二服务器会查询待处理表中是否还有任务,若有,则继续执行任务,若没有,则判定第二服务器执行完待处理表中的所有任务。
在上述步骤S42和步骤S43中,在第二服务器执行完待处理表中的所有任务后,说明当前没有任务需要被执行了,则将第二服务器的第一标志位赋值为第二预设值,例如running=false或running=0,以及第二服务器或负载调度器向数据库发送指令以让数据库删除数据库表中的预设数据和数据库的第二标志位,以避免第二服务器一直占用线程资源而导致内存增大。
在一实施例中,检查第二服务器是否执行完待处理表中的所有任务的步骤S41之后,还包括:
S44,若第二服务器执行完待处理表中的所有任务,则检查第二标志位和第二服务器的第一标志位是否出现异常,异常包括数据库存在第二标志位,但第二服务器的第一标志位的赋值为第二预设值,或者数据库不存在第二标志位,但第二服务器的第一标志位的赋值为第一预设值;
S45,若出现异常,则第二服务器的第一标志位赋值为第二预设值、删除第二标志位和删除预设数据。
在上述步骤S44中,在第二服务器执行完待处理表中的所有任务后,第二服务器会将其第一标志位赋值为第二预设值,以及删除预设数据和第二标志位,但是第二服务器可能在标志位赋值和删除数据阶段出现宕机而导致标志位赋值或数据异常,所以集群中的其他服务器通过发送Http请求,以查询第一标志位和第二标志位的状态,并检查第一标志位和第二标志位是否出现以下异常:数据库存在第二标志位但第二服务器的第一标志位的赋值为第二预设值,或数据库不存在第二标志位但第一标志位的赋值为第一预设值,若出现上述异常,则说明未完成清理预设数据或数据库的第二标志位,或者说明未完成修改第一标志位的赋值。
在上述步骤S45中,为了集群服务器能够正常运行,将第二服务器的第一标志位赋值为第二预设值、删除第二标志位和/或删除预设数据。具体地,如果异常为数据库存在第二标志位但第二服务器的第一标志位的赋值为第二预设值,则删除数据库的第二标志位和预设数据;如果异常为数据库不存在第二标志位但第二服务器的第一标志位的赋值为第一预设值,则将第一标志位赋值为第二预设值。
在一实施例中,上述判断数据库表的其他行是否存在预设数据的步骤S2之后,包括:
S21,若数据库表的其他行不存在预设数据,则判定第一服务器向数据库表成功插入预设数据,并通过第一服务器执行任务;
S22,通过第一服务器将第一服务器的第一标志位值为第一预设值,第一标志位用于标识第二服务器的工作状态,第一标志位值为第一预设值用于标识第一服务器正在执行任务;
S23,添加数据库的第二标志位,第二标志位用于标识任务正在被执行。
在上述步骤S21、S22和S23中,基于数据库表的唯一约束,若第一服务器向数据库表成功插入预设数据,则说明在第一服务器之前集群中没有服务器向数据库表成功插入预设数据,此时,由第一服务器执行任务,并标识第一服务器正在执行任务和该任务正在被执行,以避免集群中的其他服务器重新执行该任务;进一步地,对于后续加入的任务,将其添加至待处理表,并由第一服务器执行待处理表中的所有任务。
在一实施例中,上述通过第二服务器依次执行待处理表中的所有任务的步骤S4之后,还包括:
S5,检查是否接收到新的任务以及检查待处理表中是否存在任务;
S6,若均否,则将第三标志位赋值为第三预设值,第三标志位关联集群中的所有线程,线程包括循环线程和非循环线程,第三标志位赋值为第三预设值用于控制线程退出;
S7,基于第三标志位的赋值为第三预设值,退出非循环线程,以及控制非循环线程的循环结束并退出循环线程,以释放线程资源。
在上述步骤S5至步骤S7中,集群服务器可以通过发送Http请求以查询服务器的第一标志位是否为第一预设值,以及数据库的第二标志位是否存在,若服务器的第一标志位赋值不是第一预设值以及数据库的第二标志位不存在,说明当前集群中没有服务器正在执行任务,也没有新的任务需要被执行(即没有接收到新的任务),则将第三标志位的值为第三预设值,进而退出集群的所有线程,以减少线程资源的占用,避免线程一直在运行而导致超负载;具体地,如配置一个boolean类型的第三标志位exit并将其值赋值为默认值false:public volatile boolean exit=false;再将第三标志位关联所有线程,如关联循环线程while:while(!exit)。当满足第一标志位赋值为第二预设值running=false,且数据库的标志位不存在时,将第三标志位赋值为第三预设值:thread.exit=true,进而控制线程退出:thread.join();System.out.println(“线程退出!”)。本申请一实施例中集群服务器执行任务的装置,包括:
插入模块1,用于集群接收到任务后,通过第一服务器向数据库表中的指定行插入预设数据,其中,第一服务器为集群服务器池中的任意一台服务器,数据库表设有主键,预设数据为不同于主键的数据;
判断模块2,用于基于数据库表的唯一约束,判断数据库表的其他行是否存在预设数据,其中唯一约束为规定数据库表中任意两行都不允许有相同的数据;
第一添加模块3,用于若数据库表的其他行存在预设数据,则判定第一服务器向数据库表未成功插入预设数据,并将任务添加至数据库的待处理表中,数据库表与待处理表为关联表;
第一执行模块4,用于根据向待处理表中添加各个任务时的先后顺序,通过第二服务器依次执行待处理表中的所有任务,第二服务器为在第一服务器之前已经向数据库表成功插入预设数据的唯一服务器。
在上述插入模块1中,上述数据库表为关系型数据库中设有主键(primary key)的表,数据库例如Oracle数据库。上述主键为数据库表中的一个或多个字段,其值用于唯一地表示表中的某一条记录,其中每条记录均有若干个属性。例如数据库表为任务表,包含任务编号、任务名称、任务处理状态等,其中每个任务的任务编号是唯一的,则任务编号就为主键,任务编号的具体数值就为主键ID;由于数据库表设有主键,则必然存在主键约束,所以上述主键为自增长主键,以避免出现主键冲突而导致无法加入任务的数据,例如,当集群接收到新任务时,将新任务的数据加入到数据库表时,任务编号为主键,则主键ID+1(即任务编号+1)以作为该新任务的唯一标识。上述插入(insert)预设数据的方式可为通过结构化查询语言(Structured Query Language,SQL)对数据库表进行插入操作。在本实施例中,当任务编号为1(主键ID为1)的任务需要被执行时,集群中的负载调度器向服务器池中的任一空闲服务器发送调用请求(将该服务器记为服务器A),服务器A向数据库表中的指定行(如任务编号为1的任务所在的行)插入预设数据(由于任务主键从“1”开始,所以预设数据如“0”与主键不同),此时,由于主键不能为空,所以预设数据不能作为主键插入数据库表中,但为了保证只有一个相同的预设数据成功插入数据库表,则预设数据可以作为唯一键插入数据库表;进一步地,对于集群后续接收到的一个任务(主键ID为2),也是由负载调度器向服务器池中的任一空闲服务器发送调用请求(将该服务器记为服务器B),并且服务器B也向数据库表中的指定行(如任务编号为2的任务所在的行)插入相同的预设数据(如上述预设数据“0”),此时,服务器A已经向数据库表成功插入预设数据,由于数据库表的唯一约束(唯一键约束),则服务器B无法向数据库表成功插入预设数据,从而保证只有一台服务器能够向数据库表成功插入预设数据。
在上述判断模块2中,上述唯一约束(唯一键约束)用来限制不受主键约束的列上的数据唯一性,其规定表中任意两行在指定列上都不允许有相同的值,但允许空(NULL)。数据库根据各服务器向数据库表插入预设数据的时间先后不同,判定只有最先向数据库表插入预设数据的服务器插入成功,例如,集群中有服务器“A、B、C”,它们几乎同时分别接收到任务编号为“1、2、3”的任务请求,若服务器“A”最先向数据库表中的任务编号为1的任务所在的行插入预设数据“0”,则服务器“A”向数据库表成功插入预设数据,而当服务器“B”或“C”也分别向数据库表中的任务编号为2的任务所在的行、任务编号为3的任务所在的行插入预设数据“0”时,由于数据库表的唯一约束,预设数据“0”与先前服务器“A”插入的预设数据重复,无法唯一标识,所以服务器“B”或“C”插入数据“0”失败,所以只能有一台服务器能够成功插入预设数据。
在上述第一添加模块3中,当第一服务器向数据库表插入预设数据失败时,则说明在第一服务器向数据库表插入预设数据之前,就已经有服务器成功向数据库表插入了预设数据。为了后续接收到的任务也能按照时间先后顺序正常被执行,则将任务添加至待处理表。进一步地,数据库表为任务表,可以将任务表的任务编号(主键ID)作为待处理表的外键添加至待处理表,即任务表关联待处理表,任务表为主键表,而待处理表相对于任务表来说是外键表。由于任务编号为主键ID,其在任务表中是唯一的,则将任务编号添加到待处理表,任务编号在待处理表中也是唯一的,所以当第二服务器执行待处理表中的任务时,不会出现重复执行的情况;以及任务编号顺序就是任务被执行的时间顺序,所以第二服务器可以按照任务编号顺序依次执行待处理表中的任务,从而避免要求按照时间先后顺序的每个任务不会被重复或并行执行执行,进而减少线程资源的占用,提高任务的执行效率。
在上述第一执行模块4中,上述第二服务器执行待处理表中的任务时,从数据库中读取上述任务的任务编号对应的任务数据,而不是将任务数据保存在服务器的内存中,从而避免服务器在执行任务过程中出现宕机而导致任务未被执行完成时,避免集群中的其他服务器无法获取到未被执行完成的任务来重新执行,保证在服务器执行任务过程出现单点故障时,其他服务器能够从数据库中读取到未被执行完成的任务以重新执行。在一实施例中,第二服务器每执行完一个待处理表中的任务,则删除待处理表中的该任务的任务编号以及清除数据库中该任务的任务数据,以减少内存的占用。
在一实施例中,上述装置还包括:
第一赋值模块,用于通过第二服务器将第二服务器的第一标志位赋值为第一预设值,第一标志位用于标识第二服务器的工作状态,第一标志位赋值为第一预设值用于标识第二服务器正在处理待处理表中的任务;
第二添加模块,用于添加数据库的第二标志位,第二标志位用于标识任务正在被执行。
在上述第一赋值模块中,在第二服务器开始执行任务时,将第二服务器的第一标志位赋值为第一预设值,例如running=true或running=1,以将第二服务器的处理状态标识为正在执行。当其他任务需要被执行时,以便于查询到第二服务器当前处于执行任务的状态,无法立即执行其他任务,进而等待第一服务器执行完当前任务后再执行下一任务,从而实现依次执行需要按时间先后顺序执行的任务。
在上述第二添加模块中,添加数据库的第二标志位,以表示当前数据库表中的任务正在被执行,从而集群中的服务器通过查询第二标志位来获取任务是否被执行,当第二标志位存在时,则其他服务器不再获取该任务,进而不会出现该任务被重复执行的情况。在一实施例中,集群中的服务器会检查数据库中的任务是否被执行,即检查数据库的第二标志位是否存在,若存在,则说明数据库中的任务正在被执行中,再检查第二服务器是否真的正在执行任务,即检查第二服务器的第一标志位是否为第一预设值,若是第一预设值,则说明第二服务器正在执行数据库中的任务,以避免数据库的任务显示被执行中,但是第二服务器又没有执行的情况。
在一实施例中,上述装置还包括:
第一检查模块,用于检查第二服务器的第一标志位的值是否为第一预设值;
第一删除模块,用于若第二服务器的第一标志位的值不为第一预设值,则删除预设数据和第二标志位,并通过集群服务器重新向数据库表插入预设数据。
在上述第一检查模块中,由于在将任务添加至待处理表之前,第二服务器向数据库表中插入了预设数据,以及数据库存在第二标志位,则说明由第二服务器执行待处理表中的所有任务,而第二标志位表示数据库的任务正在被执行中,但数据库的任务正在被执行不能代表第二服务器一定正在执行数据库的任务,也可能出现第二服务器宕机的情况,所以在将任务添加至待处理表后,集群中其他服务器会通过发送Http请求,以查询第二服务器的第一标志位的赋值是否为第一预设值,避免第二服务器宕机而导致任务被搁置。优选地,为了避免出现查询结果延迟,发送3次Http请求以查询第二服务器的第一标志位的赋值,3次能保证查询结果准确又能减少线程资源的占用。
在上述第一删除模块中,当第二标志位存在,而第一标志位的赋值不是第一预设值,即待处理表中有任务被执行,但第一服务器又处于未执行任务的状态,可以说明第一服务器故障,因此,删除第二标志位和数据库表中的预设数据,以告知集群服务器,当前没有服务器正在执行任务,集群服务器则查询待处理表中是否存在任务,若存在,向数据库表中插入相同的预设数据,基于数据库表的唯一约束,只有一台服务器向数据库表成功插入预设数据,并由该服务器执行待处理表中的任务,执行时,向数据库读取任务对应的任务数据,从而在第二服务器宕机后,也能从集群中的其他服务器选出一台服务器继续执行待处理表的任务。
在一实施例中,上述装置还包括:
第二检查模块,用于检查第二服务器是否执行完待处理表中的所有任务;
第二赋值模块,用于若是,则通过第二服务器将第二服务器的第一标志位赋值为第二预设值,第一标志位赋值为第二预设值用于标识第二服务器处于待机状态;
第二删除模块,用于删除预设数据和第二标志位。
在上述第二检查模块中,在第二服务器每执行完一个任务时,第二服务器会查询待处理表中是否还有任务,若有,则继续执行任务,若没有,则判定第二服务器执行完待处理表中的所有任务。
在上述第二赋值模块和第二删除模块中,在第二服务器执行完待处理表中的所有任务后,说明当前没有任务需要被执行了,则将第二服务器的第一标志位赋值为第二预设值,例如running=false或running=0,以及第二服务器或负载调度器向数据库发送指令以让数据库删除数据库表中的预设数据和数据库的第二标志位,以避免第二服务器一直占用线程资源而导致内存增大。
在一实施例中,上述装置还包括:
第三检查模块,用于若第二服务器执行完待处理表中的所有任务,则检查第二标志位和第二服务器的第一标志位是否出现异常,异常包括数据库存在第二标志位,但第二服务器的第一标志位的值为第二预设值,或者数据库不存在第二标志位,但第二服务器的第一标志位的值为第一预设值;
第三赋值模块,用于若出现异常,则将第二服务器的第一标志位赋值为第二预设值、删除第二标志位和删除预设数据。
在上述第三检查模块中,在第二服务器执行完待处理表中的所有任务后,第二服务器会将其第一标志位赋值为第二预设值,以及删除预设数据和第二标志位,但是第二服务器可能在标志位赋值和删除数据阶段出现宕机而导致标志位赋值或数据异常,所以集群中的其他服务器通过发送Http请求,以查询第一标志位和第二标志位的状态,并检查第一标志位和第二标志位是否出现以下异常:数据库存在第二标志位但第二服务器的第一标志位的赋值为第二预设值,或数据库不存在第二标志位但第一标志位的赋值为第一预设值,若出现上述异常,则说明未完成清理预设数据或数据库的第二标志位,或者说明未完成修改第一标志位的赋值。
在上述第三赋值模块中,为了集群服务器能够正常运行,将第二服务器的第一标志位赋值为第二预设值、删除第二标志位和/或删除预设数据。具体地,如果异常为数据库存在第二标志位但第二服务器的第一标志位的赋值为第二预设值,则删除数据库的第二标志位和预设数据;如果异常为数据库不存在第二标志位但第二服务器的第一标志位的赋值为第一预设值,则将第一标志位赋值为第二预设值。
在一实施例中,上述装置还包括:
第二执行模块,用于若数据库表的其他行不存在预设数据,则判定第一服务器向数据库表成功插入预设数据,并通过第一服务器执行任务;
第四赋值模块,用于通过第一服务器将第一服务器的第一标志位赋值为第一预设值,第一标志位用于标识第二服务器的工作状态,第一标志位赋值为第一预设值用于标识第一服务器正在执行任务;
第三添加模块,用于添加数据库的第二标志位,第二标志位用于标识任务正在被执行。
在上述第二执行模块、第四赋值模块和第三添加模块中,基于数据库表的唯一约束,若第一服务器向数据库表成功插入预设数据,则说明在第一服务器之前集群中没有服务器向数据库表成功插入预设数据,此时,由第一服务器执行任务,并标识第一服务器正在执行任务和该任务正在被执行,以避免集群中的其他服务器重新执行该任务;进一步地,对于后续加入的任务,将其添加至待处理表,并由第一服务器执行待处理表中的所有任务。
在一实施例中,上述装置还包括:
第四检查模块,用于检查是否接收到新的任务以及检查待处理表中是否存在任务;
第五赋值模块,用于若均否,则将第三标志位赋值为第三预设值,第三标志位关联集群中的所有线程,线程包括循环线程和非循环线程,第三标志位赋值为第三预设值用于控制线程退出;
退出模块,用于基于第三标志位的赋值为第三预设值,退出非循环线程,以及控制非循环线程的循环结束并退出循环线程,以释放线程资源。
在上述第四检查模块、第五赋值模块和退出模块中,集群服务器可以通过发送Http请求以查询服务器的第一标志位是否为第一预设值,以及数据库的第二标志位是否存在,若服务器的第一标志位赋值不是第一预设值以及数据库的第二标志位不存在,说明当前集群中没有服务器正在执行任务,也没有新的任务需要被执行(即没有接收到新的任务),则将第三标志位的赋值为第三预设值,进而退出集群的所有线程,以减少线程资源的占用,避免线程一直在运行而导致超负载;具体地,如配置一个boolean类型的第三标志位exit并将其值赋值为默认值false:public volatile boolean exit=false;再将第三标志位关联所有线程,如关联循环线程while:while(!exit)。当满足第一标志位赋值为第二预设值running=false,且数据库的标志位不存在时,将第三标志位赋值为第三预设值:thread.exit=true,进而控制线程退出:thread.join();System.out.println(“线程退出!”)。
本申请一实施例一种计算机设备,包括存储器和执行器,存储器存储有计算机程序,执行器执行计算机程序时实现上述集群服务器执行任务的方法的步骤。
上述计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的数据库用于存储碳期货价格预测模型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令在执行时,执行如上述各方法的实施例的流程。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例中存储介质,其为计算机可读存储介质,其上存储有计算机程序,计算机程序被执行器执行时实现上述集群服务器执行任务的方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种集群服务器执行任务的方法,其特征在于,包括:
集群接收到任务后,通过第一服务器向数据库表中的指定行插入预设数据,其中,所述第一服务器为集群服务器池中的任意一台服务器,所述数据库表设有主键,所述预设数据为不同于所述主键的数据;
基于所述数据库表的唯一约束,判断所述数据库表的其他行是否存在所述预设数据,其中所述唯一约束为规定所述数据库表中任意两行都不允许有相同的数据;
若所述数据库表的其他行存在所述预设数据,则判定所述第一服务器向所述数据库表未成功插入所述预设数据,并将所述任务添加至数据库的待处理表中,所述数据库表与所述待处理表存在关联关系;
根据向所述待处理表中添加各个任务时的先后顺序,通过第二服务器依次执行所述待处理表中的所有任务,所述第二服务器为在所述第一服务器之前已经向所述数据库表成功插入所述预设数据的唯一服务器。
2.根据权利要求1所述的集群服务器执行任务的方法,其特征在于,所述将所述任务添加至数据库的待处理表中的步骤之前,包括:
通过所述第二服务器将所述第二服务器的第一标志位赋值为第一预设值,所述第一标志位用于标识所述第二服务器的工作状态,所述第一标志位赋值为第一预设值用于标识所述第二服务器正在处理所述任务;
添加所述数据库的第二标志位,所述第二标志位用于标识所述任务正在被执行。
3.根据权利要求2所述的集群服务器执行任务的方法,其特征在于,所述将所述任务添加至数据库的待处理表中的步骤之后,包括:
检查所述第二服务器的第一标志位的值是否为所述第一预设值;
若所述第二服务器的第一标志位的值不为所述第一预设值,则删除所述预设数据和所述第二标志位,并通过集群服务器重新向所述数据库表插入所述预设数据。
4.根据权利要求2所述的集群服务器执行任务的方法,其特征在于,所述通过第二服务器依次执行所述待处理表中的所有任务的步骤之后,包括:
检查所述第二服务器是否执行完所述待处理表中的所有任务;
若是,则通过所述第二服务器将所述第二服务器的第一标志位赋值为第二预设值,所述第一标志位赋值为第二预设值用于标识所述第二服务器处于待机状态;
删除所述预设数据和所述第二标志位。
5.根据权利要求4所述的集群服务器执行任务的方法,其特征在于,所述检查所述第二服务器是否执行完所述待处理表中的所有任务的步骤之后,还包括:
若所述第二服务器执行完所述待处理表中的所有任务,则检查所述第二标志位和所述第二服务器的第一标志位是否出现异常,所述异常包括所述数据库存在所述第二标志位,但所述第二服务器的第一标志位的值为所述第二预设值,或者所述数据库不存在所述第二标志位,但所述第二服务器的第一标志位的值为所述第一预设值;
若出现异常,则将所述第二服务器的第一标志位赋值为所述第二预设值、删除所述第二标志位和删除所述预设数据。
6.根据权利要求1所述的集群服务器执行任务的方法,其特征在于,所述判断所述数据库表的其他行是否存在所述预设数据的步骤之后,包括:
若所述数据库表的其他行不存在所述预设数据,则判定所述第一服务器向所述数据库表成功插入所述预设数据,并通过所述第一服务器执行所述任务;
通过所述第一服务器将所述第一服务器的第一标志位赋值为第一预设值,所述第一标志位用于标识所述第二服务器的工作状态,所述第一标志位赋值为第一预设值用于标识所述第一服务器正在执行所述任务;
添加所述数据库的第二标志位,所述第二标志位用于标识所述任务正在被执行。
7.根据权利要求1所述的集群服务器执行任务的方法,其特征在于,所述通过第二服务器依次执行所述待处理表中的所有任务的步骤之后,还包括:
检查是否接收到新的任务以及检查所述待处理表中是否存在任务;
若均否,则将第三标志位赋值为第三预设值,所述第三标志位关联所述集群中的所有线程,所述线程包括循环线程和非循环线程,所述第三标志位赋值为第三预设值用于控制所述线程退出;
基于所述第三标志位的赋值为所述第三预设值,退出所述非循环线程,以及控制所述非循环线程的循环结束并退出所述循环线程,以释放线程资源。
8.一种集群服务器执行任务的装置,其特征在于,包括:
插入模块,用于集群接收到任务后,通过第一服务器向数据库表中插入预设数据,其中,所述第一服务器为集群服务器池中的任意一台服务器,所述数据库表设有主键,所述预设数据为不同于所述主键的数据;
判断模块,用于基于所述数据库表的唯一约束,判断所述第一服务器是否成功插入所述预设数据;
第一添加模块,用于若未成功插入,则将所述任务添加至数据库的待处理表中,所述数据库表与所述待处理表为关联表;
第一执行模块,用于通过第二服务器依次执行所述待处理表中的所有任务,所述第二服务器为在所述第一服务器之前已经向所述数据库表成功插入所述预设数据的唯一服务器。
9.一种计算机设备,包括存储器和执行器,所述存储器存储有计算机程序,其特征在于,所述执行器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910300268.XA 2019-04-15 2019-04-15 集群服务器执行任务的方法、装置、设备及存储介质 Active CN110134512B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910300268.XA CN110134512B (zh) 2019-04-15 2019-04-15 集群服务器执行任务的方法、装置、设备及存储介质
PCT/CN2019/119564 WO2020211376A1 (zh) 2019-04-15 2019-11-20 集群服务器执行任务的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910300268.XA CN110134512B (zh) 2019-04-15 2019-04-15 集群服务器执行任务的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110134512A true CN110134512A (zh) 2019-08-16
CN110134512B CN110134512B (zh) 2024-02-13

Family

ID=67569953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910300268.XA Active CN110134512B (zh) 2019-04-15 2019-04-15 集群服务器执行任务的方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN110134512B (zh)
WO (1) WO2020211376A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990475A (zh) * 2019-12-13 2020-04-10 深圳前海环融联易信息科技服务有限公司 批量任务插入方法、装置、计算机设备及存储介质
WO2020211376A1 (zh) * 2019-04-15 2020-10-22 平安科技(深圳)有限公司 集群服务器执行任务的方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101471810A (zh) * 2007-12-28 2009-07-01 华为技术有限公司 一种在集群环境下实现任务的方法、装置及系统
CN103345423A (zh) * 2013-07-03 2013-10-09 北京京东尚科信息技术有限公司 一种处理异步任务的方法和系统
CN105373428A (zh) * 2015-12-09 2016-03-02 北京奇虎科技有限公司 一种任务调度方法和系统
WO2018014582A1 (zh) * 2016-07-22 2018-01-25 平安科技(深圳)有限公司 保单数据处理方法、装置、服务器和存储介质
CN108984639A (zh) * 2018-06-22 2018-12-11 联想(北京)有限公司 服务器集群的数据处理方法和装置
CN109101528A (zh) * 2018-06-21 2018-12-28 深圳市买买提信息科技有限公司 数据处理方法、数据处理装置及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105100259B (zh) * 2015-08-18 2018-02-16 北京京东尚科信息技术有限公司 一种分布式定时任务执行方法和系统
CN108334545B (zh) * 2017-12-27 2021-09-03 微梦创科网络科技(中国)有限公司 一种实现异步服务的方法及装置
CN110134512B (zh) * 2019-04-15 2024-02-13 平安科技(深圳)有限公司 集群服务器执行任务的方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101471810A (zh) * 2007-12-28 2009-07-01 华为技术有限公司 一种在集群环境下实现任务的方法、装置及系统
CN103345423A (zh) * 2013-07-03 2013-10-09 北京京东尚科信息技术有限公司 一种处理异步任务的方法和系统
CN105373428A (zh) * 2015-12-09 2016-03-02 北京奇虎科技有限公司 一种任务调度方法和系统
WO2018014582A1 (zh) * 2016-07-22 2018-01-25 平安科技(深圳)有限公司 保单数据处理方法、装置、服务器和存储介质
CN109101528A (zh) * 2018-06-21 2018-12-28 深圳市买买提信息科技有限公司 数据处理方法、数据处理装置及电子设备
CN108984639A (zh) * 2018-06-22 2018-12-11 联想(北京)有限公司 服务器集群的数据处理方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020211376A1 (zh) * 2019-04-15 2020-10-22 平安科技(深圳)有限公司 集群服务器执行任务的方法、装置、设备及存储介质
CN110990475A (zh) * 2019-12-13 2020-04-10 深圳前海环融联易信息科技服务有限公司 批量任务插入方法、装置、计算机设备及存储介质
CN110990475B (zh) * 2019-12-13 2023-09-08 深圳前海环融联易信息科技服务有限公司 批量任务插入方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2020211376A1 (zh) 2020-10-22
CN110134512B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
US5815727A (en) Parallel processor for executing plural thread program in parallel using virtual thread numbers
US9454401B2 (en) Resource allocation method and apparatus of GPU
CN107239335A (zh) 分布式系统的作业调度系统及方法
CN106598705A (zh) 一种异步任务的调度方法、装置、系统以及电子设备
CN108491254A (zh) 一种数据仓库的调度方法及装置
EP1019814A1 (en) Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster
CN106155807A (zh) 一种实现资源调度的方法与设备
CN110134512A (zh) 集群服务器执行任务的方法、装置、设备及存储介质
Lehmann et al. Deadlock handling for real-time control of AGVs at automated container terminals
Zhu et al. Fault-tolerant scheduling for real-time tasks on multiple earth-observation satellites
CN104065636A (zh) 数据处理方法和系统
CN107168758A (zh) 多代码库的代码编译检查方法及装置
CN102799485A (zh) 历史数据的迁移方法及装置
CN110611707A (zh) 一种任务调度的方法及装置
CN111581155B (zh) 数据入数据库的方法、装置和计算机设备
CN111400352B (zh) 一种可进行数据批量处理的工作流引擎
CN113157411B (zh) 一种基于Celery的可靠可配置任务系统及装置
JP2008009496A (ja) 保守サービス運用システムおよび保守サービス運用方法
CN107256130B (zh) 基于Cuckoo哈希计算的数据存储优化方法及系统
CN110706108A (zh) 在区块链中并发执行交易的方法和装置
CN106170013B (zh) 一种基于Redis的Kafka消息唯一性方法
US20110035748A1 (en) Data processing method, data processing program, and data processing system
CN105204818A (zh) 用于管理机动车辆的故障消息的方法
CN115185787A (zh) 处理事务日志的方法及装置

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
GR01 Patent grant
GR01 Patent grant