CN111625322A - 数据处理方法、系统及设备 - Google Patents
数据处理方法、系统及设备 Download PDFInfo
- Publication number
- CN111625322A CN111625322A CN201910147488.3A CN201910147488A CN111625322A CN 111625322 A CN111625322 A CN 111625322A CN 201910147488 A CN201910147488 A CN 201910147488A CN 111625322 A CN111625322 A CN 111625322A
- Authority
- CN
- China
- Prior art keywords
- thread
- state
- notification
- target task
- executing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 230000003139 buffering effect Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 24
- 230000000903 blocking effect Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 21
- 230000002618 waking effect Effects 0.000 claims description 11
- 239000000126 substance Substances 0.000 claims description 2
- 230000004931 aggregating effect Effects 0.000 abstract description 22
- 230000000694 effects Effects 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
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
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、系统及设备。
背景技术
在计算机业务应用系统中,经常会有执行外部响应幂等性任务的需求。其中,幂等性是指:使用相同参数对同一资源重复调用一个接口的结果与调用一次的结果相同。比如,定时任务就是一种典型的幂等性任务。
在有大量的幂等性任务要执行时,需消耗较大资源。因此,必须要控制执行的频度,保证最终一致性,否则会消耗过多的计算机资源,影响正常业务的执行。
发明内容
本申请各实施例提供一种在保证最终一致性的情况下还能有效降低执行频度的数据处理方法、系统及设备。
在本申请的一个实施例中,提供了一种数据处理方法。该方法包括:
在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;
所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;
待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;
执行所述目标任务。
在申请的另一个实施例中,提供了一种数据处理系统。该系统包括:
第一计算设备,用于向第二计算设备发送通知;
所述第二计算设备,用于在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;执行所述目标任务。
在本申请的又一个实施例中,提供了一种数据处理方法。该方法包括:
在一个缓冲周期内,持续接收执行目标任务的至少一个通知;
待所述缓冲周期期满后,回调所述目标任务;
执行所述目标任务。
在本申请的又一个实施例中,提供了一种数据处理系统。该数据处理系统包括:
第一计算设备,用于向第二计算设备发送通知;
所述第二计算设备,用于在一个缓冲周期内,持续接收执行目标任务的至少一个通知;待所述缓冲周期期满后,回调所述目标任务;执行所述目标任务。
在本申请的又一个实施例中,提供了一种计算设备。该计算设备包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;
所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;
待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;
执行所述目标任务。
在本申请的又一个实施例中,还提供一种计算设备。该计算设备包括:存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
在一个缓冲周期内,持续接收执行目标任务的至少一个通知;
待所述缓冲周期期满后,回调所述目标任务;
执行所述目标任务。
本申请实施例提供的一个技术方案,通过同类型通知对应的线程处于第一状态时才能切换为第二状态以启动计时,而已处于第二状态的线程是无法重新启动计时的方式;达到将计时期间内的同类型通知聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将同类型通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
本申请实施例提供的另一个技术方案,提供了一种缓冲机制,在一个缓冲周期内持续接收执行相同任务的至少一个通知,并在缓冲周期期满后再回调目标任务并执行,达到将缓冲周期内执行相同任务的通知进行聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将执行相同任务的通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据处理系统的结构示意图;
图2为本申请一实施例提供的数据处理方法的流程示意图;
图3为本申请另一实施例提供的数据处理方法的流程示意图;
图4为本申请又一实施例提供的数据处理方法的流程示意图;
图5为本申请一实施例提供的数据处理装置的结构示意图;
图6为本申请另一实施例提供的数据处理装置的结构示意图;
图7为本申请一实施例提供的计算设备的结构示意图。
具体实施方式
在介绍本申请各实施例提供的技术方案之前,先对本文中出现的术语进行简单的解释说明,以便于技术方案的理解。
幂等性:使用相同参数对同一资源重复调用某个接口的结果与调用一次的结果相同。
最终一致性:虽然在某一些时间点会有暂时的数据不一致发生,但是随着时间的推移,各节点数据最终会保持一致。
短时间内,计算设备接收到大量执行相同任务的通知,造成短时间内大量的任务计算,对计算设备本身都造成较大负担。所以需要控制执行的频度,以保证最终一致性。目前存在两种比较常见的应对这种幂等任务的解决方案:
方案一:异步化
将执行任务的通知转化成消息,进行异步化执行,即无需等待调用函数(任务)执行完就让操作继续进行。这种方式将短时间的大量幂等任务执行通过异步化分散开来,保证了每个任务都能执行,保证了最终一致性;但还是需要消耗大量的资源,影响其他正常任务的执行。
方案二:发令牌
每隔一段时间(比如每分钟)往令牌桶中发一个令牌,要执行任务时需要先消耗一个令牌;如果令牌已经消耗殆尽,则该任务取消执行。这种方式确实能减少短时间内大量幂等任务的执行,但是可能导致最后一个任务被取消执行,不能保证最终一致性。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的技术方案可在图1所示系统架构下实现。如图1所示,本申请实施例提供一种数据处理系统,包括:
第一计算设备101,用于向第二计算设备102发送通知;
所述第二计算设备102,用于在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;执行所述目标任务。
其中,所述第一计算设备101和第二计算设备102可以是服务端侧设备,也可以是客户端侧设备。服务端侧设备可以是单机服务器、或是服务器阵列中的虚拟服务器、或者是具有服务功能的其他设备,本实施例对此不作具体限定。服务端侧设备可以在本地或云端。所述客户端侧设备可具体为:台式计算机、智能手机、笔记本电脑、智能穿戴设备等等,本申请实施例对此不作具体限定。
本施例提供的技术方案,通过同类型通知对应的线程处于第一状态时才能切换为第二状态以启动计时,而已处于第二状态的线程是无法重新启动计时的方式;达到将计时期间内的同类型通知聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将同类型通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
为了便于方案理解,下面将以数据处理系统中的第二计算设备为执行主体,对本申请的技术方案进行说明;即上述第二计算设备还可实现下述相应实施例中的方法。
图2示出了本申请一实施例提供的数据处理方法的流程示意图。如图2所示,所述方法包括:
101、在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关。
102、所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时。
103、待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态。
104、执行所述目标任务。
上述101中,通知所属类型与通知对应的任务相关可简单理解为:两个通知对应的任务相同,则这两个所属类型就相同。
在一种可实现的技术方案中,本步骤中“获取所述通知所属类型对应的线程”,可具体包括:
1011、判定所述通知所属类型对应的线程是否已创建。
1012、在未创建所述线程的情况下,创建所述线程,配置所述线程对应的参数,并将所述线程的状态设置为所述第一状态。
1013、在所述线程已创建的情况下,获取所述线程。
其中,配置的参数可包括:所述预设时长及回调参数。线程可在计时到达所述预设时长时基于回调参数回调所述通知对应的目标任务。即上述1012中“配置所述线程对应的参数”包括:
配置所述预设时长;
配置回调参数以指向所述通知对应的目标任务。
上述102中,所述第一状态为阻塞状态,所述第二状态为唤醒状态。相应的,将所述线程从所述第一状态切换为所述第二状态,可具体为:
唤醒所述线程。
其中,唤醒线程的方式可参见现有技术实现,本实施例此处不再赘述。
或者,所述线程对应有标记位;所述标记位为第一数值(如0)时,所述线程处于第一状态;所述标记位为第二数值(如1)时,所述线程处于第二状态。线程不断轮询该标记位,当该标记位为第二数值时,才跳出轮询进入所述第二状态。相应的,将所述线程从所述第一状态切换为所述第二状态,可具体为:
所述标记位的数值为第一数值时,将所述标记位的数值从所述第一数值更新为第二数值。
这里需要说明的是:当所述标记位的数值为第二数值时,所述线程已处于第二状态启动计时;此时,对所述标记位的数值更新操作无效。
上述103中,将所述线程从所述第二状态切换回所述第一状态,可具体为:
阻塞所述线程;或者
将所述标记位数值从所述第二数值更新为所述第一数值。
本实施例提供的技术方案,通过同类型通知对应的线程处于第一状态时才能切换为第二状态以启动计时,而已处于第二状态的线程是无法重新启动计时的方式;达到将计时期间内的同类型通知聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将同类型通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
图3示出了本申请另一实施例提供的数据处理方法的流程示意图。如图3所示,所述方法包括:
301、接收通知A。
302、判断所述通知A所属类型对应的线程是否已创建;若未创建,则执行步骤303;若已创建,则获取所述线程。
303、创建对应线程,并且初始化对应的参数(如预设时长、回调参数等),开启线程并使线程进入阻塞状态。
304、所述线程是否处于阻塞状态时,唤醒所述线程使其进入唤醒状态。
305、线程进入唤醒状态后,开始计时。
线程进入唤醒状态后,再次唤醒线程无效。
306、计时到达预设时长后,回调所述通知对应的任务A,并执行所述任务A。
307、阻塞所述线程以使所述线程再次进入阻塞状态,等待再次接收到通知A后唤醒。
需要补充的是:所述线程处于唤醒状态时,再次唤醒所述线程的操作无效。
这里需要说明的是:在接收到通知B(对应任务B)、通知C(对应任务C)…等通知后,均可采用上述方案回调相应任务并执行,此处不再一一赘述。
本申请另一实施例还提供一种数据处理系统。该数据处理系统的系统架构同图1所示的系统架构。本实施例与图1所示的实施例中的区别在于,第二计算设备的功能不同。具体的,本实施例提供所述数据处理系统包括:
第一计算设备,用于向第二计算设备发送通知;
所述第二计算设备,用于在一个缓冲周期内,持续接收执行目标任务的至少一个通知;待所述缓冲周期期满后,回调所述目标任务;执行所述目标任务。
本实施例提供的技术方案,提供了一种缓冲机制,在一个缓冲周期内持续接收执行相同任务的至少一个通知,并在缓冲周期期满后再回调目标任务并执行,达到将缓冲周期内执行相同任务的通知进行聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将执行相同任务的通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
为了便于方案理解,下面将以数据处理系统中的第二计算设备为执行主体,对本申请的技术方案进行说明;即上述第二计算设备还可实现下述相应实施例中的方法。
图4示出了本申请一实施例提供的数据处理方法的流程示意图。该实施例提供的所述方法,包括:
401、在一个缓冲周期内,持续接收执行目标任务的至少一个通知。
402、待所述缓冲周期期满后,回调所述目标任务。
403、执行所述目标任务。
上述401中,缓冲周期可预先设定,比如基于经验值设定,或通过理论计算得到,本实施例对此不作具体限定。
在一种可实现的技术方案中,步骤401“在一个缓冲周期内,持续接收执行目标任务的至少一个通知”,具体包括:
4011、接收执行目标任务的第一通知后,判定所述第一通知所属类型对应的线程是否已创建;
4012、在未创建所述线程的情况下,创建所述线程;
4013、配置所述线程对应的缓冲时长及回调参数;
4014、阻塞所述线程使其处于阻塞状态;
4015、唤醒所述线程启动计时以进入所述缓冲周期等待接收执行所述目标任务的至少一个第二通知。
进一步的,步骤401“在一个缓冲周期内,持续接收执行目标任务的至少一个通知”,还包括:
4016、在已创建所述线程,且所述线程处于阻塞状态的情况下,获取所述线程;
4017、唤醒所述线程启动计时以进入所述缓冲周期等待接收执行所述目标任务的至少一个第二通知。
上述402中,所述缓冲周期期满即线程计时到达所述缓冲时长。相应的额,该步骤“待所述缓冲周期期满后,回调所述目标任务”,可具体包括:
4021、待所述线程计时到达所述缓冲时长后,所述缓冲周期期满;
4022、所述线程基于所述回调参数完成对所述目标任务的回调。
进一步的,本实施例提供的所述方法还可包括:
404、所述线程完成对所述目标任务的回调后,阻塞所述线程,以等待接收到执行所述目标任务的通知后再次被唤醒,进入下一个缓冲周期。
本实施例提供的技术方案,提供了一种缓冲机制,在一个缓冲周期内持续接收执行相同任务的至少一个通知,并在缓冲周期期满后再回调目标任务并执行,达到将缓冲周期内执行相同任务的通知进行聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将执行相同任务的通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
图5示出了本申请一实施例提供了一种数据处理装置的结构示意图。如图5所示,所述数据处理装置包括:获取模块11、切换模块12及执行模块13。其中,所述获取模块11用于在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关。所述切换模块12用于所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态。所述执行模块13用于执行所述目标任务。
本实施例提供的技术方案,通过同类型通知对应的线程处于第一状态时才能切换为第二状态以启动计时,而已处于第二状态的线程是无法重新启动计时的方式;达到将计时期间内的同类型通知聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将同类型通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
进一步的,所述获取模块11还用于:
判定所述通知所属类型对应的线程是否已创建;
在未创建所述线程的情况下,创建所述线程,配置所述线程对应的参数,并将所述线程的状态设置为所述第一状态;
在所述线程已创建的情况下,获取所述线程。
再进一步的,所述获取模块11还用于:配置所述预设时长;配置回调参数以指向所述通知对应的目标任务。
进一步的,所述第一状态为阻塞状态,所述第二状态为唤醒状态。相应的,所述切换模块12还用于:在所述线程处于阻塞状态时,唤醒所述线程;在所述线程处于唤醒状态时,阻塞所述线程。
进一步的,所述切换模块12还用于:所述线程为唤醒状态时,再次唤醒所述线程的操作为无效操作。
进一步的,所述获取模块11还用于:
获取所述线程对应的标记位;
所述标记位为第一数值时,所述线程处于所述第一状态;
所述标记位为第二数值时,所述线程处于所述第二状态。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图6示出了本申请另一实施例提供的数据处理装置的结构示意图。如图6所示,所述数据处理装置包括:接收模块21、回调模块22及执行模块23。其中,接收模块21用于在一个缓冲周期内,持续接收执行目标任务的至少一个通知;回调函数22用于待所述缓冲周期期满后,回调所述目标任务;执行模块23用于执行所述目标任务。
本实施例提供的技术方案,提供了一种缓冲机制,在一个缓冲周期内持续接收执行相同任务的至少一个通知,并在缓冲周期期满后再回调目标任务并执行,达到将缓冲周期内执行相同任务的通知进行聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将执行相同任务的通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
进一步的,所述接收模块21还用于:
接收执行目标任务的第一通知后,判定所述第一通知所属类型对应的线程是否已创建;
在未创建所述线程的情况下,创建所述线程;
配置所述线程对应的缓冲时长及回调参数;
阻塞所述线程使其处于阻塞状态;
唤醒所述线程启动计时以进入所述缓冲周期等待接收执行所述目标任务的至少一个第二通知。
进一步的,所述接收模块21还用于:
在已创建所述线程,且所述线程处于阻塞状态的情况下,获取所述线程;
唤醒所述线程启动计时以进入所述缓冲周期等待接收执行所述目标任务的至少一个第二通知。
进一步的,所述回调模块22还用于:
待所述线程计时到达所述缓冲时长后,所述缓冲周期期满;
所述线程基于所述回调参数完成对所述目标任务的回调。
进一步的,所述数据处理装置还包括阻塞模块。所述阻塞模块用于所述线程完成对所述目标任务的回调后,阻塞所述线程,以等待接收到执行所述目标任务的通知后再次被唤醒,进入下一个缓冲周期。
这里需要说明的是:上述实施例提供的数据处理装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述各方法实施例中的相应内容,此处不再赘述。
图7示出了本申请一实施例提供的计算设备的结构示意图。如图7所示,所述计算设备包括:存储器31及处理器32。其中,存储器31可被配置为存储其它各种数据以支持在计算设备上的操作。这些数据的示例包括用于在计算设备上操作的任何应用程序或方法的指令。存储器31可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述处理器32,与所述存储器31耦合,用于执行所述存储器31中存储的所述程序,以用于:
在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;
所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;
待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;
执行所述目标任务。
本实施例提供的技术方案,通过同类型通知对应的线程处于第一状态时才能切换为第二状态以启动计时,而已处于第二状态的线程是无法重新启动计时的方式;达到将计时期间内的同类型通知聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将同类型通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
其中,处理器32在执行存储器31中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
进一步的,如图7所示,计算设备还包括:显示器34、通信组件33、电源组件35、音频组件36等其它组件。图7中仅示意性给出部分组件,并不意味着计算设备只包括图7所示组件。
本申请另一实施例还提供了一种计算设备。该计算设备的实现结构与上图7所示的实施例类同。参见图7所示,所述计算设备包括:存储器及处理器;其中,所述存储器,用于存储程序;所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
在一个缓冲周期内,持续接收执行目标任务的至少一个通知;
待所述缓冲周期期满后,回调所述目标任务;
执行所述目标任务。
其中,处理器在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。
本实施例提供的技术方案,提供了一种缓冲机制,在一个缓冲周期内持续接收执行相同任务的至少一个通知,并在缓冲周期期满后再回调目标任务并执行,达到将缓冲周期内执行相同任务的通知进行聚合的效果,以降低执行频度;另外,由于幂等性任务的特性,将执行相同任务的通知聚合后仅回调并执行一次目标任务与每次通知后都执行目标任务的结果是相同的,因此本申请实施例提供的技术方案,还保证了结果的最终一致性。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各实施例提供的数据处理方法的步骤或功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;
所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;
待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;
执行所述目标任务。
2.根据权利要求1所述的方法,其特征在于,获取所述通知所属类型对应的线程,包括:
判定所述通知所属类型对应的线程是否已创建;
在未创建所述线程的情况下,创建所述线程,配置所述线程对应的参数,并将所述线程的状态设置为所述第一状态;
在所述线程已创建的情况下,获取所述线程。
3.根据权利要求2所述的方法,其特征在于,配置所述线程对应的参数,包括:
配置所述预设时长;
配置回调参数以指向所述通知对应的目标任务。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一状态为阻塞状态,所述第二状态为唤醒状态;以及
将所述线程从所述第一状态切换为第二状态,包括:
唤醒所述线程;
将所述线程从所述第二状态切换回所述第一状态,包括:
阻塞所述线程。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述线程为唤醒状态时,再次唤醒所述线程的操作为无效操作。
6.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
获取所述线程对应的标记位;
所述标记位为第一数值时,所述线程处于所述第一状态;
所述标记位为第二数值时,所述线程处于所述第二状态。
7.一种数据处理系统,其特征在于,包括:
第一计算设备,用于向第二计算设备发送通知;
所述第二计算设备,用于在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;执行所述目标任务。
8.一种数据处理方法,其特征在于,包括:
在一个缓冲周期内,持续接收执行目标任务的至少一个通知;
待所述缓冲周期期满后,回调所述目标任务;
执行所述目标任务。
9.根据权利要求8所述的方法,其特征在于,在一个缓冲周期内,持续接收执行目标任务的至少一个通知,包括:
接收执行目标任务的第一通知后,判定所述第一通知所属类型对应的线程是否已创建;
在未创建所述线程的情况下,创建所述线程;
配置所述线程对应的缓冲时长及回调参数;
阻塞所述线程使其处于阻塞状态;
唤醒所述线程启动计时以进入所述缓冲周期等待接收执行所述目标任务的至少一个第二通知。
10.根据权利要求9所述的方法,其特征在于,在一个缓冲周期内,持续接收执行目标任务的至少一个通知,还包括:
在已创建所述线程,且所述线程处于阻塞状态的情况下,获取所述线程;
唤醒所述线程启动计时以进入所述缓冲周期等待接收执行所述目标任务的至少一个第二通知。
11.根据权利要求9或10所述的方法,其特征在于,待所述缓冲周期期满后,回调所述目标任务,包括:
待所述线程计时到达所述缓冲时长后,所述缓冲周期期满;
所述线程基于所述回调参数完成对所述目标任务的回调。
12.根据权利要求11所述的方法,其特征在于,还包括:
所述线程完成对所述目标任务的回调后,阻塞所述线程,以等待接收到执行所述目标任务的通知后再次被唤醒,进入下一个缓冲周期。
13.一种数据处理系统,其特征在于,包括:
第一计算设备,用于向第二计算设备发送通知;
所述第二计算设备,用于在一个缓冲周期内,持续接收执行目标任务的至少一个通知;待所述缓冲周期期满后,回调所述目标任务;执行所述目标任务。
14.一种计算设备,其特征在于,包括:存储器及处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
在接收到通知的情况下,获取所述通知所属类型对应的线程,其中,类型与通知对应的任务相关;
所述线程处于第一状态时,将所述线程从所述第一状态切换为第二状态使得所述线程启动计时;
待所述线程计时到达预设时长回调所述通知对应的目标任务后,将所述线程从所述第二状态切换回所述第一状态;
执行所述目标任务。
15.一种计算设备,其特征在于,包括:存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
在一个缓冲周期内,持续接收执行目标任务的至少一个通知;
待所述缓冲周期期满后,回调所述目标任务;
执行所述目标任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910147488.3A CN111625322B (zh) | 2019-02-27 | 2019-02-27 | 数据处理方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910147488.3A CN111625322B (zh) | 2019-02-27 | 2019-02-27 | 数据处理方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625322A true CN111625322A (zh) | 2020-09-04 |
CN111625322B CN111625322B (zh) | 2024-03-29 |
Family
ID=72272441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910147488.3A Active CN111625322B (zh) | 2019-02-27 | 2019-02-27 | 数据处理方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625322B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579210A (zh) * | 2020-12-30 | 2021-03-30 | 上海众源网络有限公司 | 一种应用程序控制方法及装置 |
CN112650566A (zh) * | 2020-12-21 | 2021-04-13 | 曙光信息产业股份有限公司 | 定时任务处理方法、装置、计算机设备和存储介质 |
CN113177422A (zh) * | 2020-09-30 | 2021-07-27 | 深圳华智融科技股份有限公司 | 卡检测方法、计算机设备和计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL135459A0 (en) * | 1997-10-23 | 2001-05-20 | Ibm | A system and method for performing computer processing operations |
CN101170448A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 处理电信网管系统拓扑界面大量上报消息的系统和方法 |
CN103164338A (zh) * | 2013-03-25 | 2013-06-19 | 华为技术有限公司 | 并发处理系统的模拟方法及装置 |
CN106775965A (zh) * | 2016-11-17 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种定时任务的处理方法及装置 |
CN107122193A (zh) * | 2017-04-28 | 2017-09-01 | 湖南中车时代通信信号有限公司 | 一种消息线程挂起时间的动态调节方法 |
CN109284193A (zh) * | 2018-09-06 | 2019-01-29 | 平安科技(深圳)有限公司 | 一种基于多线程的分布式数据处理方法及服务器 |
CN109343972A (zh) * | 2018-08-21 | 2019-02-15 | 平安科技(深圳)有限公司 | 任务处理方法及终端设备 |
CN109388485A (zh) * | 2018-09-26 | 2019-02-26 | 广州虎牙信息科技有限公司 | 一种任务执行线程的处理方法、装置、设备及存储介质 |
-
2019
- 2019-02-27 CN CN201910147488.3A patent/CN111625322B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL135459A0 (en) * | 1997-10-23 | 2001-05-20 | Ibm | A system and method for performing computer processing operations |
CN101170448A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 处理电信网管系统拓扑界面大量上报消息的系统和方法 |
CN103164338A (zh) * | 2013-03-25 | 2013-06-19 | 华为技术有限公司 | 并发处理系统的模拟方法及装置 |
CN106775965A (zh) * | 2016-11-17 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种定时任务的处理方法及装置 |
CN107122193A (zh) * | 2017-04-28 | 2017-09-01 | 湖南中车时代通信信号有限公司 | 一种消息线程挂起时间的动态调节方法 |
CN109343972A (zh) * | 2018-08-21 | 2019-02-15 | 平安科技(深圳)有限公司 | 任务处理方法及终端设备 |
CN109284193A (zh) * | 2018-09-06 | 2019-01-29 | 平安科技(深圳)有限公司 | 一种基于多线程的分布式数据处理方法及服务器 |
CN109388485A (zh) * | 2018-09-26 | 2019-02-26 | 广州虎牙信息科技有限公司 | 一种任务执行线程的处理方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
钱宇虹;: "如何用Java回调和线程实现异步调用" * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177422A (zh) * | 2020-09-30 | 2021-07-27 | 深圳华智融科技股份有限公司 | 卡检测方法、计算机设备和计算机可读存储介质 |
CN113177422B (zh) * | 2020-09-30 | 2024-02-20 | 深圳华智融科技股份有限公司 | 卡检测方法、计算机设备和计算机可读存储介质 |
CN112650566A (zh) * | 2020-12-21 | 2021-04-13 | 曙光信息产业股份有限公司 | 定时任务处理方法、装置、计算机设备和存储介质 |
CN112650566B (zh) * | 2020-12-21 | 2022-03-22 | 曙光信息产业股份有限公司 | 定时任务处理方法、装置、计算机设备和存储介质 |
CN112579210A (zh) * | 2020-12-30 | 2021-03-30 | 上海众源网络有限公司 | 一种应用程序控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111625322B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625322B (zh) | 数据处理方法、系统及设备 | |
CN110019339B (zh) | 一种数据查询方法和系统 | |
CN109862101B (zh) | 跨平台应用启动方法、装置、计算机设备和存储介质 | |
CN109725988B (zh) | 一种任务调度方法和装置 | |
CN106815065B (zh) | 后台应用的唤醒方法及装置、电子设备 | |
US20170329655A1 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN109214741B (zh) | 一种监控指标的预警方法和预警系统 | |
CN110110306B (zh) | 数据展示方法、装置、终端及计算机可读存储介质 | |
CN111078404B (zh) | 一种计算资源确定方法、装置、电子设备及介质 | |
CN105210039B (zh) | 终端和用于同步其应用的方法 | |
US20170160778A1 (en) | Method and device for monitoring power-consuming applications, user terminal, computer program and storage medium | |
CN107682389B (zh) | 一种执行网络请求的方法、终端及计算机可读存储介质 | |
CN107391274B (zh) | 离线消息的处理方法及装置 | |
CN110569135A (zh) | 一种基于发布订阅模式的进程间通信方法及系统 | |
US9690748B1 (en) | Delivering notifications to background applications | |
CN111092774A (zh) | 采集网关的配置方法及设备 | |
CN111381976A (zh) | 消息提示数据的更新方法、装置、存储介质及计算机设备 | |
US20150120607A1 (en) | System and method for customer event email consolidation and delivery | |
CN115344371A (zh) | 接口的调用方法及装置、存储介质、计算机设备 | |
CN109064527A (zh) | 动态配置动画的实现方法、装置、存储介质及安卓终端 | |
CN109547563B (zh) | 消息推送处理方法、装置、存储介质及服务器 | |
CN114721876A (zh) | 一种数据备份方法、装置、介质 | |
CN113760403A (zh) | 状态机联动方法和装置 | |
CN112817992A (zh) | 执行更改任务的方法、装置、电子设备以及可读存储介质 | |
CN115794321A (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 |