CN112685146A - 数据处理方法、装置、可读存储介质和电子设备 - Google Patents
数据处理方法、装置、可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN112685146A CN112685146A CN201910994740.4A CN201910994740A CN112685146A CN 112685146 A CN112685146 A CN 112685146A CN 201910994740 A CN201910994740 A CN 201910994740A CN 112685146 A CN112685146 A CN 112685146A
- Authority
- CN
- China
- Prior art keywords
- task
- current
- state
- object identifier
- state corresponding
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据处理方法、装置、可读存储介质和电子设备,所述方法通过数据库存储任务内容和对应的属性信息,根据任务内容创建任务的执行队列,通过多个进程按顺序并行获取任务队列中的任务并根据属性信息对获取的任务进行处理。所述方法通过任务队列和参考任务属性信息处理任务,避免了因任务并行处理带来的执行顺序颠倒、任务重复执行等问题导致的系统混乱。
Description
技术领域
本发明涉及计算机软件领域,尤其涉及一种数据处理方法、装置、可读存储介质和电子设备。
背景技术
在计算机软件领域,一个服务器往往需要与多个客户端进行传输,处理来自多个客户端的大量任务信息,由于服务器需要处理的任务量庞大,为提高任务处理的效率,往往对多个任务信息进行并行处理。
在任务处理的过程中,因所述大量的任务信息中通常有针对相同任务对象的多个任务,并行处理多个任务时可能会导致任务重复执行、或针对相同任务对象的多个任务执行顺序颠倒等问题,进而导致整个调整系统混乱。
发明内容
有鉴于此,本发明实施例公开一种数据处理方法、装置、可读存储介质和电子设备,以避免因任务并行处理带来的执行顺序颠倒、任务重复执行等问题,防止系统发生混乱。
第一方面,本发明实施例公开了一种数据处理方法,所述方法包括:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
进一步地,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述当前任务的任务状态为未处理,在所述任务数据表中查询所述当前任务的在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息;
响应于未查询所述在先任务,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
进一步地,在所述任务数据表中查询所述当前任务的在先任务之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于查询到所述在先任务,确认所述各在先任务的任务状态;
响应于全部所述在先任务的任务状态为已处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
进一步地,在确定所述当前任务对应的任务状态和任务对象标识之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述当前任务的任务状态为已处理,将所述当前任务放回所述任务执行队列的队尾。
进一步地,在确认所述各在先任务的任务状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于至少一个所述在先任务的任务状态为未处理,将所述当前任务放回所述任务执行队列的队尾。
进一步地,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述锁定状态修改为未锁定并执行所述当前任务。
进一步地,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述任务状态为未处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,在所述任务数据表中获取所述任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息;
根据对应的存储时间依次处理所述任务信息的任务内容。
进一步地,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述当前任务放回所述任务执行队列的队尾。
进一步地,所述根据对应的存储时间依次处理所述任务信息的任务内容包括:
将所述锁定状态修改为锁定,根据对应的存储时间依次处理所述任务信息的任务内容;
响应于所述任务信息全部处理完成,将所述锁定状态修改为未锁定。
第二方面,本发明实施例公开了一种数据处理装置,所述装置包括:
任务列表确定模块,用于接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
锁定状态列表确定模块,用于确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
执行队列确定模块,用于根据所述任务数据表中包含的任务内容确定任务执行队列;
任务获取模块,用于通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
任务处理模块,用于通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
第三方面,本发明实施例公开了一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面中任一项所述的方法。
第四方面,本发明实施例公开了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如下所述步骤:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
进一步地,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述当前任务的任务状态为未处理,在所述任务数据表中查询所述当前任务的在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息;
响应于未查询所述在先任务,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
进一步地,在所述任务数据表中查询所述当前任务的在先任务之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于查询到所述在先任务,确认所述各在先任务的任务状态;
响应于全部所述在先任务的任务状态为已处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
进一步地,在确定所述当前任务对应的任务状态和任务对象标识之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述当前任务的任务状态为已处理,将所述当前任务放回所述任务执行队列的队尾。
进一步地,在确认所述各在先任务的任务状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于至少一个所述在先任务的任务状态为未处理,将所述当前任务放回所述任务执行队列的队尾。
进一步地,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述锁定状态修改为未锁定并执行所述当前任务。
进一步地,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述任务状态为未处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,在所述任务数据表中获取所述任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息;
根据对应的存储时间依次处理所述任务信息的任务内容。
进一步地,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述当前任务放回所述任务执行队列的队尾。进一步地,所述根据对应的存储时间依次处理所述任务信息的任务内容包括:
将所述锁定状态修改为锁定,根据对应的存储时间依次处理所述任务信息的任务内容;
响应于所述任务信息全部处理完成,将所述锁定状态修改为未锁定。
本发明实施例所述的方法通过数据库存储任务内容和对应的属性信息,根据任务内容创建任务的执行队列,通过多个进程按顺序并行获取任务队列中的任务并根据属性信息对获取的任务进行处理。所述方法通过任务队列和参考任务属性信息处理任务,避免了因任务并行处理带来的执行顺序颠倒、任务重复执行等问题导致的系统混乱。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1为本发明第一实施例的数据处理方法的流程图;
图2为本发明第一实施例的数据处理方法的示意图;
图3为本发明第二实施例的数据处理方法的流程图;
图4为本发明第三实施例的数据处理方法的流程图;
图5为本发明实施例的数据处理装置的示意图;
图6为本发明实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
图1为本发明第一实施例的数据处理方法的流程图,如图1所示,所述方法包括:
步骤S100、接收任务信息,将所述任务信息存入数据库中的任务数据表。
具体地,所述任务信息通过客户端或服务器发送,由数据库接收。其中,所述任务信息包括任务内容、任务状态和任务对象标识,所述任务内容用于表征对所述任务对象执行的操作,例如可以是“关闭店铺”、“增加配送费”等用于调整外卖平台配送压力的策略。所述任务状态用于表征任务内容的执行情况,包括“未执行”和“已执行”,所述任务对象标识用于表征需要所述任务内容的任务对象,可以是所述任务对象的名称、编号、代码等信息。所述客户端例如可以是智能手机、电脑、平板电脑等用于安装应用程序的智能终端。例如,当所述服务器用于处理针对外卖服务中由于早中晚用餐高峰期、或天气恶劣情况或其他导致的配送压力过大的问题时,会根据各个店铺的压力情况对配送压力进行调整。此时,所述任务对象标识用于表征商户,所述任务对象标识例如可以是商户名称“小张包子”、商户编号“000182”、商户代码“A002”等等,所述任务内容为“调整店铺配送费用”、“增加店铺的预期配送时间”等用于调整配送压力的调整策略。当所述服务器用于处理视频软件会员权限进行调整问题时,会根据用户充值情况对用户权限进行调整。此时,所述任务对象标识用于表征用户,所述任务对象标识例如可以是用户昵称“一条咸鱼王”、用户账号“1574558”、用户手机号码“12345678910”等等,所述任务内容为“解锁会员视频”、“免除视频广告”等用于调整用户权限的策略。
所述数据库中维护一个用于存储任务信息的任务数据表,当接收到任务信息后将所述任务信息存储至所述任务数据表中,同时在所述任务信息中增加所述任务信息的存储时间,所述存储时间用于表征所述任务信息的存储顺序,以及任务信息的执行顺序。
步骤S200、确定锁定状态列表。
具体地,所述锁定状态列表也由数据库维护,其中包含与所述各任务对象标识对应的锁定状态,用于表征所述各任务对象在当前时刻是否有任务正在执行。当任务对象标识有对应的任务正在执行时,所述任务对象标识在所述锁定状态列表中对应的锁定状态为“锁定”;当任务对象标识无对应的任务正在执行时,所述任务对象标识在所述锁定状态列表中对应的锁定状态为“未锁定”。
步骤S300、根据所述任务数据表中包含的任务内容确定任务执行队列。
具体地,从所述任务数据表中按存储时间的顺序获取对应的任务内容,依次对所述任务内容进行排序以确定任务执行队列。当所述任务数据表中新增任务信息时,将所述任务信息中的任务内容加入任务执行队列的队尾。
步骤S400、通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务。
具体地,所述进程用于获取任务内容及处理任务内容,在本实施例中,所述多个进程按顺序并行获取所述任务执行队列中的任务内容。其中,所述各进程将获取到的任务内容作为所述进程的当前任务,当所述当前任务执行完成后,再按顺序在所述任务执行队列中获取下一个任务内容作为当前任务。
步骤S500、通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
具体地,所述各进程在所述任务数据表中搜索当前任务对应的任务状态和任务对象标识,再在所述锁定状态列表中搜索所述任务对象标识对应的锁定状态,进而根据上述信息处理所述当前任务。
图2为本发明实施例的数据处理方法的示意图,如图2所示,所述数据库中维护任务数据表20和锁定状态表22,根据任务数据表20中的任务内容确定任务执行队列21。进程23在所述任务执行队列21中获取当前任务,并在所述任务数据表20中获取所述当前任务的任务状态和任务对象标识,在所述锁定状态列表22中获取所述任务对象标识对应的锁定状态,最后根据所述任务状态、任务对象标识和锁定状态处理所述当前任务。具体地,所述进程根据所述任务状态、任务对象标识和锁定状态判断当前任务是否可执行,是则执行所述当前任务,否则将所述当前任务放回所述任务执行队列21的队尾。
本发明实施例所述的方法通过数据库存储任务内容和对应的属性信息,根据任务内容创建任务的执行队列,通过多个进程按顺序并行获取任务队列中的任务并根据属性信息对获取的任务进行处理。所述方法通过任务队列和参考任务属性信息处理任务,避免了因任务并行处理带来的执行顺序颠倒、任务重复执行等问题导致的系统混乱。
图3为本发明第二实施例的数据处理方法的流程图,如图3所示,在所述方法中,所述进程的当前任务通过与图1中步骤S100-S400相同的方法确定,再进一步通过如下步骤处理:
步骤S510、确定所述当前任务对应的任务状态和任务对象标识。
具体地,所述当前任务通过所述步骤S100-S400确定,在此不再赘述。所述进程获取到所述当前任务后,在所述任务数据表中搜索,以确定当前任务对应的任务状态和任务对象标识。在本实施例中,所述进程还获取当前任务的存储时间。
步骤S520、判断所述当前任务的任务状态。
具体地,当所述步骤S510中确定的当前任务对应的任务状态为未处理时,在所述任务数据表中查询在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息。例如,在所述服务器用于处理外卖配送服务的配送压力过大的问题时,在步骤S610中获取到的当前任务的任务对象标识为“小张包子”,存储时间为“11:27”,则在所述任务数据表中查询全部任务对象标识为“小张包子”,存储时间早于“11:27”的任务作为所述当前任务的在先任务。
进一步地,当所述步骤S510中确定的当前任务对应的任务状态为已处理时,直接进入步骤S570处理所述当前任务,即将所述当前任务放回所述任务执行队列的队尾。
步骤S530、判断是否查询到在先任务。
具体地,当通过所述步骤S520未查询到所述当前任务的在先任务,直接确定所述当前任务的任务对象标识对应的锁定状态。
进一步地,当通过步骤S520查询到至少一个所述当前任务的在先任务,确定各所述在先任务的任务状态。
步骤S540、判断所述各在先任务的任务状态。
具体地,当全部所述在先任务的任务状态均为已处理,认为无在先的未处理的或正在处理的任务,确定所述当前任务的任务对象标识对应的锁定状态。
进一步地,当存在至少一个在先任务的任务状态为未处理时,任务还有在先任务未处理或正在处理中。直接进入步骤S670处理所述当前任务,即将所述当前任务放回所述任务执行队列的队尾。
步骤S550、判断所述任务对象标识的锁定状态。
具体地,当通过步骤S520未查询到所述当前任务的在先任务,或查询到的全部所述在先任务的任务状态均为已处理时,确定所述任务对象标识的锁定状态。当所述锁定状态为未锁定时,确定当前时刻无任务正在处理,进入步骤S660,通过所述进程执行所述当前任务。在本实施例中,当所述当前任务开始执行时,将所述任务对象标识对应的锁定状态修改为锁定;当所述当前任务执行完成时,将所述任务对象标识对应的锁定状态修改为未锁定,将所述当前任务对应的任务状态修改为已执行。
进一步地,当所述任务对象标识对应的所述锁定状态为锁定时,在所述步骤S520未查询到在先任务的情况下,确定所述任务对象无在先任务需要执行或正在执行,判断所述锁定状态错误,将所述锁定状态修改为未锁定,再执行所述当前任务。在所述步骤S520查询到了在先任务,且全部所述在先任务的任务状态为已执行的情况下,因每一次任务执行完成时才将对应的任务状态修改为已执行,所以在当前时刻任务对象无在先任务需要执行或正在执行,判断所述锁定状态错误,将所述锁定状态修改为未锁定,再执行所述当前任务。
本发明实施例所述的数据处理方法通过依次判断当前任务的任务状态、是否存在在先任务、在先任务的任务状态以及任务对象的锁定状态确定当前任务是否为可执行任务,同时确定是否存在在先的未处理任务,以及锁定状态是否出现错误,避免了因任务并行处理带来的执行顺序颠倒、任务重复执行等问题导致的系统混乱,同时解决了锁定状态错误导致任务无法执行的问题。
图4为本发明第三实施例的数据处理方法的流程图,如图4所示,所述进程的当前任务通过与图1中步骤S100-S400相同的方法确定,再进一步通过如下步骤处理:
步骤S610、确定所述当前任务对应的任务状态和任务对象标识。
具体地,所述当前任务通过所述步骤S100-S400确定,在此不再赘述。所述进程获取到所述当前任务后,在所述任务数据表中搜索,以确定当前任务对应的任务状态和任务对象标识。
步骤S620、判断所述当前任务的任务状态。
具体地,当所述步骤S610中确定的当前任务对应的任务状态为未处理时,进一步通过所述进程在所述锁定状态列表中确定所述当前任务的任务对象标识对应的锁定状态。
进一步地,当所述步骤S610中确定的当前任务对应的任务状态为未处理时,直接通过步骤S640’将所述当前任务放回所述任务执行队列的队尾。
步骤S630、判断所述任务对象标识对应的锁定状态。
具体地,当所述步骤S620中确定的所述任务对象标识对应的锁定状态为未锁定,认为当前时刻不存在与所述任务对象对应的,且正在执行的任务。此时,通过步骤S640在所述任务数据表中查询并获取全部任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息。在所述过程中,因所述当前任务的任务状态为未处理,获取到的任务信息中也包含所述当前任务。
进一步地,当所述步骤S630中确定的所述任务对象标识对应的锁定状态为锁定时,任务当前时刻有与所述任务对象对应的任务正在执行,直接通过步骤S640’将所述当前任务放回所述任务执行队列的队尾。
步骤S650、根据对应的存储时间依次处理所述任务信息的任务内容
具体地,在通过步骤S640在所述任务数据表中查询并获取全部任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息的同时,确定各所述任务信息的存储时间,根据各所述任务信息的存储时间由先到后按顺序依次执行各所述任务信息。
进一步地,在开始处理所述各任务时,将所述各任务信息的任务对象标识对应的锁定状态修改为锁定;当所述全部任务处理完成时,将所述任务对象标识对应的锁定状态修改为未锁定,将所述全部任务对应的任务状态均修改为已执行。
本实施例所述的方法在获取到当前任务后,将其对应的任务对象的全部任务按顺序执行,避免了因难以判断执行顺序导致的执行顺序错误,以及遗漏在先的未处理任务等问题。
图5为本发明实施例的数据处理装置的示意图,如图5所示,所述装置包括任务列表确定模块50、锁定状态列表确定模块51、执行队列确定模块52、任务获取模块53和任务处理模块54。
具体地,所述任务列表确定模块50用于接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识。所述锁定状态列表确定模块51用于确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态。所述执行队列确定模块52用于根据所述任务数据表中包含的任务内容确定任务执行队列。所述任务获取模块53用于通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务。所述任务处理模块54用于通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
所述装置用于实现图1所述的数据处理方法,通过数据库存储任务内容和对应的属性信息,根据任务内容创建任务的执行队列,通过多个进程按顺序并行获取任务队列中的任务并根据属性信息对获取的任务进行处理。能够实现通过任务队列和参考任务属性信息处理任务,避免了因任务并行处理带来的执行顺序颠倒、任务重复执行等问题导致的系统混乱。
图6为本发明实施例的电子设备的示意图。如图6所示,在本实施例中,所述电子设备可以为服务器或终端等,所述终端例如可以是手机、电脑、平板电脑等智能设备。如图所示,所述电子设备包括:至少一个处理器62;与至少一个处理器通信连接的存储器61;以及与存储介质通信连接的通信组件63,所述通信组件63在处理器的控制下接收和发送数据;其中,存储器61存储有可被至少一个处理器62执行的指令,指令被至少一个处理器62执行以实现如下所述的步骤:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
进一步地,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述当前任务的任务状态为未处理,在所述任务数据表中查询所述当前任务的在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息;
响应于未查询所述在先任务,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
进一步地,在所述任务数据表中查询所述当前任务的在先任务之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于查询到所述在先任务,确认所述各在先任务的任务状态;
响应于全部所述在先任务的任务状态为已处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
进一步地,在确定所述当前任务对应的任务状态和任务对象标识之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述当前任务的任务状态为已处理,将所述当前任务放回所述任务执行队列的队尾。
进一步地,在确认所述各在先任务的任务状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于至少一个所述在先任务的任务状态为未处理,将所述当前任务放回所述任务执行队列的队尾。
进一步地,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述锁定状态修改为未锁定并执行所述当前任务。
进一步地,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述任务状态为未处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,在所述任务数据表中获取所述任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息;
根据对应的存储时间依次处理所述任务信息的任务内容。
进一步地,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述当前任务放回所述任务执行队列的队尾。
进一步地,所述根据对应的存储时间依次处理所述任务信息的任务内容包括:
将所述锁定状态修改为锁定,根据对应的存储时间依次处理所述任务信息的任务内容;
响应于所述任务信息全部处理完成,将所述锁定状态修改为未锁定。
具体地,所述存储器61作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器62通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述检索方法。
存储器61可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器61可选包括相对于处理器62远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器61中,当被一个或者多个处理器62执行时,执行上述任意方法实施例中的检索方法。
上述产品可执行本申请实施例所公开的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所公开的方法。
本发明还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本发明实施例公开了A1、一种数据处理方法,所述方法包括:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
A2、根据A1所述的方法,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述当前任务的任务状态为未处理,在所述任务数据表中查询所述当前任务的在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息;
响应于未查询所述在先任务,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
A3、根据A2所述的方法,在所述任务数据表中查询所述当前任务的在先任务之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于查询到所述在先任务,确认所述各在先任务的任务状态;
响应于全部所述在先任务的任务状态为已处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
A4、根据A2所述的方法,在确定所述当前任务对应的任务状态和任务对象标识之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述当前任务的任务状态为已处理,将所述当前任务放回所述任务执行队列的队尾。
A5、根据A3所述的方法,在确认所述各在先任务的任务状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于至少一个所述在先任务的任务状态为未处理,将所述当前任务放回所述任务执行队列的队尾。
A6、根据A2或3所述的方法,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述锁定状态修改为未锁定并执行所述当前任务。
A7、根据A1所述的方法,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述任务状态为未处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,在所述任务数据表中获取所述任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息;
根据对应的存储时间依次处理所述任务信息的任务内容。
A8、根据A7所述的方法,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述当前任务放回所述任务执行队列的队尾。
A9、根据A7所述的方法,所述根据对应的存储时间依次处理所述任务信息的任务内容包括:
将所述锁定状态修改为锁定,根据对应的存储时间依次处理所述任务信息的任务内容;
响应于所述任务信息全部处理完成,将所述锁定状态修改为未锁定。
本发明实施例还公开了B1、一种数据处理装置,所述装置包括:
任务列表确定模块,用于接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
锁定状态列表确定模块,用于确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
执行队列确定模块,用于根据所述任务数据表中包含的任务内容确定任务执行队列;
任务获取模块,用于通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
任务处理模块,用于通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
本发明实施例还公开了C1、一种计算机可读存储介质,用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如A1-A9中任一项所述的方法。
本发明实施例还公开了D1、一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如下所述步骤:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
D2、根据D1所述的电子设备,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述当前任务的任务状态为未处理,在所述任务数据表中查询所述当前任务的在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息;
响应于未查询所述在先任务,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
D3、根据D2所述的电子设备,在所述任务数据表中查询所述当前任务的在先任务之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于查询到所述在先任务,确认所述各在先任务的任务状态;
响应于全部所述在先任务的任务状态为已处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
D4、根据D2所述的电子设备,在确定所述当前任务对应的任务状态和任务对象标识之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述当前任务的任务状态为已处理,将所述当前任务放回所述任务执行队列的队尾。
D5、根据D3所述的电子设备,在确认所述各在先任务的任务状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于至少一个所述在先任务的任务状态为未处理,将所述当前任务放回所述任务执行队列的队尾。
D6、根据D2或D3所述的电子设备,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述锁定状态修改为未锁定并执行所述当前任务。
D7、根据D1所述的电子设备,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述任务状态为未处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,在所述任务数据表中获取所述任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息;
根据对应的存储时间依次处理所述任务信息的任务内容。
D8、根据D7所述的电子设备,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述当前任务放回所述任务执行队列的队尾。
D9、根据D7所述的电子设备,所述根据对应的存储时间依次处理所述任务信息的任务内容包括:
将所述锁定状态修改为锁定,根据对应的存储时间依次处理所述任务信息的任务内容;
响应于所述任务信息全部处理完成,将所述锁定状态修改为未锁定。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
2.根据权利要求1所述的方法,其特征在于,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述当前任务的任务状态为未处理,在所述任务数据表中查询所述当前任务的在先任务,所述在先任务为与当前任务对应的任务对象标识相同,且存储时间早于当前任务的任务信息;
响应于未查询所述在先任务,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
3.根据权利要求2所述的方法,其特征在于,在所述任务数据表中查询所述当前任务的在先任务之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于查询到所述在先任务,确认所述各在先任务的任务状态;
响应于全部所述在先任务的任务状态为已处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,执行所述当前任务。
4.根据权利要求2所述的方法,其特征在于,在确定所述当前任务对应的任务状态和任务对象标识之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述当前任务的任务状态为已处理,将所述当前任务放回所述任务执行队列的队尾。
5.根据权利要求3所述的方法,其特征在于,在确认所述各在先任务的任务状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于至少一个所述在先任务的任务状态为未处理,将所述当前任务放回所述任务执行队列的队尾。
6.根据权利要求2或3所述的方法,其特征在于,在确定所述任务对象标识对应的锁定状态之后,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务还包括:
响应于所述锁定状态为锁定,将所述锁定状态修改为未锁定并执行所述当前任务。
7.根据权利要求1所述的方法,其特征在于,所述通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务包括:
确定所述当前任务对应的任务状态和任务对象标识;
响应于所述任务状态为未处理,确定所述任务对象标识对应的锁定状态;
响应于所述锁定状态为未锁定,在所述任务数据表中获取所述任务对象标识与所述当前任务相同,且任务状态为未处理的任务信息;
根据对应的存储时间依次处理所述任务信息的任务内容。
8.一种数据处理装置,其特征在于,所述装置包括:
任务列表确定模块,用于接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
锁定状态列表确定模块,用于确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
执行队列确定模块,用于根据所述任务数据表中包含的任务内容确定任务执行队列;
任务获取模块,用于通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
任务处理模块,用于通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
9.一种计算机可读存储介质,用于存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-7中任一项所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如下所述步骤:
接收任务信息,将所述任务信息存入数据库中的任务数据表,所述任务信息包括任务内容、存储时间、任务状态和任务对象标识;
确定锁定状态列表,所述锁定状态列表包含与所述任务对象标识对应的锁定状态;
根据所述任务数据表中包含的任务内容确定任务执行队列;
通过多个进程按顺序并行获取所述任务执行队列中的任务内容作为进程的当前任务;
通过所述各进程根据当前任务对应的任务状态、任务对象标识和与所述任务对象标识对应的锁定状态处理所述当前任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910994740.4A CN112685146B (zh) | 2019-10-18 | 2019-10-18 | 数据处理方法、装置、可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910994740.4A CN112685146B (zh) | 2019-10-18 | 2019-10-18 | 数据处理方法、装置、可读存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685146A true CN112685146A (zh) | 2021-04-20 |
CN112685146B CN112685146B (zh) | 2022-12-27 |
Family
ID=75445618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910994740.4A Active CN112685146B (zh) | 2019-10-18 | 2019-10-18 | 数据处理方法、装置、可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685146B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590278A (zh) * | 2021-07-05 | 2021-11-02 | 杭州智家通科技有限公司 | 去除重复执行任务的方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261591A (zh) * | 2008-04-28 | 2008-09-10 | 艾诺通信系统(苏州)有限责任公司 | 多核dsp系统中自适应的任务调度方法 |
CN103425533A (zh) * | 2012-05-09 | 2013-12-04 | 辉达公司 | 用于管理嵌套执行流的方法和系统 |
CN106648839A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据处理的方法和装置 |
US20180232259A1 (en) * | 2017-02-15 | 2018-08-16 | Ca, Inc. | Distributed processing of mixed serial and concurrent workloads |
CN108446175A (zh) * | 2018-03-12 | 2018-08-24 | 平安普惠企业管理有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
-
2019
- 2019-10-18 CN CN201910994740.4A patent/CN112685146B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261591A (zh) * | 2008-04-28 | 2008-09-10 | 艾诺通信系统(苏州)有限责任公司 | 多核dsp系统中自适应的任务调度方法 |
CN103425533A (zh) * | 2012-05-09 | 2013-12-04 | 辉达公司 | 用于管理嵌套执行流的方法和系统 |
CN106648839A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据处理的方法和装置 |
US20180232259A1 (en) * | 2017-02-15 | 2018-08-16 | Ca, Inc. | Distributed processing of mixed serial and concurrent workloads |
CN108446175A (zh) * | 2018-03-12 | 2018-08-24 | 平安普惠企业管理有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590278A (zh) * | 2021-07-05 | 2021-11-02 | 杭州智家通科技有限公司 | 去除重复执行任务的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112685146B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107748695B (zh) | 定时任务处理方法、装置、存储介质和计算机设备 | |
CN112526892B (zh) | 用于控制智能家居设备的方法及装置、电子设备 | |
CN104021141B (zh) | 数据处理和云服务的方法、装置及系统 | |
CN112365219B (zh) | 订单处理方法、装置、存储介质和电子设备 | |
CN104301395A (zh) | 一种设备自动升级的方法、电子设备及系统 | |
CN109348434B (zh) | 一种场景信息的发送方法、发送装置及终端设备 | |
CN112685146B (zh) | 数据处理方法、装置、可读存储介质和电子设备 | |
US20220391447A1 (en) | Method and apparatus for retrieving a data package | |
CN111800447A (zh) | 云游戏的服务器调度方法、装置及可读存储介质 | |
CN108536541B (zh) | 流程引擎对象处理方法及装置 | |
CN112202909A (zh) | 一种计算机存储系统在线升级方法及系统 | |
CN109976826B (zh) | 一种应用软件处理方法、移动终端及云服务器 | |
CN110913416B (zh) | 终端及其联网方法和计算机可读存储介质 | |
US8374593B2 (en) | Method of providing mobile application | |
CN110493735B (zh) | 一种短信处理方法及装置 | |
CN111815339B (zh) | 一种营销信息推送方法及设备 | |
US12019774B2 (en) | Exclusive control system and exclusive control method | |
CN112217849B (zh) | Sd-wan系统中的任务调度方法、系统和计算机设备 | |
CN112711600A (zh) | 一种可设置交易延时上链的方法和系统 | |
CN112541810A (zh) | 业务数据的风险处置方法、装置及计算机可读存储介质 | |
CN108093377B (zh) | 计费系统异常时的移动业务自动放通方法及系统 | |
CN111932333A (zh) | 订单共享方法、装置及系统 | |
CN110362575A (zh) | 一种生成数据的全局索引的方法及装置 | |
CN107451498B (zh) | 一种对象间关联关系的提供方法、装置及智能卡 | |
CN111104439B (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 |