CN110557453A - 一种数据分发方法、装置、设备和存储介质 - Google Patents
一种数据分发方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110557453A CN110557453A CN201910838215.3A CN201910838215A CN110557453A CN 110557453 A CN110557453 A CN 110557453A CN 201910838215 A CN201910838215 A CN 201910838215A CN 110557453 A CN110557453 A CN 110557453A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- clients
- group
- target task
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据分发方法、装置、设备和存储介质。该方法包括:接收待发送的数据;将客户端划分至两个或两个以上的组别中;对每个组别分别设置任务;分别执行任务,以分别将数据推送至组别中的客户端;确定中断的任务,作为目标任务;响应于中断,重新执行目标任务,以将数据推送至目标任务对应组别中的客户端。通过对客户端进行分组,即使任务中断,也可以记录已经完成任务的组别的客户端,从而仅仅对未完成推送任务和推送任务中断的组别重新执行目标任务。
Description
技术领域
本发明实施例涉及数据分发技术,尤其涉及一种数据分发方法、装置、设备和存储介质。
背景技术
随着互联网技术的普及和发展,越来越多的用户接入了互联网。用户通过互联网对内容提供商提供的文字、图像、音频和视频等各种媒体内容进行访问。
用户为了方便对内容提供商进行访问,通常会对内容提供商进行订阅。以现在流行的直播服务为例,直播平台拥有庞大的用户群体,这些用户群体不仅对直播平台进行了订阅,还可能对直播平台中的某些主播进行了订阅。
当直播平台发布消息或者直播平台中的主播发布消息时,这些消息需要及时的被推动到进行订阅的用户的客户端中。通常的,推送一条消息给关联的客户端的行为可以被定义为一个推送任务。因为一个推送任务是在一台机器的应用上执行的,推送任务执行到一半,机器宕机或是运行推送任务的应用被异常关闭了、那么这个推送任务就会被中断。中断了的任务不能在终端后自行接续发送,因为推送任务已经被触发过,如果不进行干预,该中断的推送任务不会被重新触发。此时,只能重新通知运营重新触发推送任务,而在重新进行推送任务时,由于数据的丢失,也不能确定哪些客户端已经被发送了消息。这将会导致所有的客户端均被重新发送消息,极大的浪费了网络资源。
发明内容
本发明提供一种数据分发方法、装置、设备和存储介质,以解决重新开始推送任务后,所有的客户端均被重新发送消息,极大的浪费了网络资源的问题。
第一方面,本发明实施例提供了一种数据分发方法,包括:
接收待发送的数据;
将客户端划分至两个或两个以上的组别中;
对每个所述组别分别设置任务;
分别执行所述任务,以分别将所述数据推送至所述组别中的客户端;
确定中断的任务,作为目标任务;
响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
在此基础上,还包括:
执行所述任务的执行主体触发一任务;
确定所述执行主体或执行所述任务的线程异常,以导致所述任务在被触发后中断。
在此基础上,所述将客户端划分至两个或两个以上的组别中,包括:
确定两个或两个以上的组别;
将所述客户端按照预设数量划分至所述组别中。
在此基础上,所述分别执行所述任务,以分别将所述数据推送至所述组别中的客户端,包括:
当未将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为正在发送;
当已将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为完成发送;
统计已推送所述数据的客户端的数量。
在此基础上,所述确定中断的任务,作为目标任务,包括:
至少两次确定所述组别的状态与已推送所述数据的客户端的数量;
若至少两次所述状态均为正在发送、且至少两次所述数量相同,则确定所述任务为中断的目标任务。
在此基础上,所述至少两次确定所述组别的状态与已推送所述数据的客户端的数量,包括:
若所述任务超时,则记录所述组别的状态与已推送所述数据的客户端的数量;
若所述状态为正在发送,则设置一时间段;
若超过所述时间段,则记录所述组别的状态与已推送所述数据的客户端的数量。
在此基础上,所述响应于所述中断,重新执行所述目标任务,包括:
响应于所述中断,撤销所述目标任务;
执行所述目标任务,将所述数据重新推送至所述目标任务对应组别中的所有客户端;
或者,
响应于所述中断,撤销所述目标任务;
确定所述目标任务对应组别中已推送所述数据的客户端;
执行所述目标任务,以将所述数据推送至所述目标任务对应组别中、未推送所述数据的客户端。
第二方面,本发明实施例还提供了一种数据分发装置,包括:
数据确定模块,用于接收待发送的数据;
客户端划分模块,用于将客户端划分至两个或两个以上的组别中;
任务设置模块,用于对每个所述组别分别设置任务;
任务执行模块,用于分别执行所述任务,以分别将所述数据推送至所述组别中的客户端;
目标任务确定模块,用于确定中断的任务,作为目标任务;
中断响应模块,用于响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的一种数据分发方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所述的一种数据分发方法。
本发明通过将客户端划分至两个或两个以上的组别中;对每个组别分别设置任务;分别执行任务,以分别将数据(消息)推送至组别中的客户端;确定中断的任务,作为目标任务;响应于中断,重新执行目标任务,以将数据推送至目标任务对应组别中的客户端。这样对客户端进行分组,即使任务中断,也可以记录已经完成任务的组别的客户端,从而仅仅对未完成推送任务和推送任务中断的组别重新执行目标任务。与某些实现方式相比,减少了需要进行任务的客户端,实现了节约网络资源的目的。
附图说明
图1为本发明实施例一提供的一种数据分发方法的流程图;
图2A为本发明实施例二提供的一种数据分发方法的流程图;
图2B为本发明实施例二提供的判断任务中断的示意图;
图3为本发明实施例三提供的一种数据分发装置的结构图;
图4为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据分发方法的流程图。本实施例适用于对接收数据的客户端进行分组,根据分组后的组别进行数据发送的场景。该方法可以由一种数据分发装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可配置在具有数据处理能力的电子设备中,如服务器。参考图1,该方法具体包括:
S101、接收待发送的数据。
待发送的数据是指需要分发给客户端的数据。在不同的环境中,待发送的数据的内容、数据大小和格式可能会有所不同。
一般的,如果待发送的数据大小超过预设的数据大小,会对待发送的数据进行切分打包的处理,以生成可以一次性发送给一个客户端的文件包。
在一可行的实现方式中,该应用场景为直播平台中一主播设置了下次开始主播的时间,直播平台需要向关注该主播的用户进行推送,下次开始主播的时间即为待发送的数据。此时,该数据的数据大小较小,但是需要接收该数据的客户端数量庞大。
在一可行的实现方式中,由一台服务器向客户端进行推送。此时,服务器接收待发送的数据。
S102、将客户端划分至两个或两个以上的组别中。
客户端是指为客户提供本地服务的程序。一般安装在普通的客户机上,需要与服务端互相配合运行。
确定组别的方式至少包括两种。一种是,组别的数量一定,组别中可容纳的客户端数量不一定,即将需要接受数据的客户端均匀的分到数量一定的组别中。一种是,组别的数量不一定,组别中可容纳的客户端数量一定,即将需要接受数据的客户端的地址写入组别中,写满一个组别后开始写入另一个组别。
S103、对每个所述组别分别设置任务。
分别设置任务是指对每个组别中的客户端都设置推送任务,以使得不同组别中的客户端均可接受到数据。其中,相同组别中的客户端接收相同的数据。这里的任务一般是指向客户端进行推送的任务。
在一可行的实现方式中,以组别为单位进行数据的推送。每个组别被设置有任务。
S104、分别执行所述任务,以分别将所述数据推送至所述组别中的客户端。
执行对每个组别设置的任务,将任务中的数据推送给该组别中的客户端。当然,在将数据推送到组别中的客户端时,可能会可以实现任务,即成功的将数据推送至组别中的客户端,也可能因为遇到某些突发原因,导致在对部分客户端进行推送候,任务终端,导致组别中的部分客户端没有接收到数据。
在一可行的实现方式中,可以遍历每个组别内的客户端用户,然后依次地交给推送的SDK(simple-develop-key,简单的开发钥匙)去负责推送。比如说针对安卓的推送,可以把用户的数据利用请求-响应协议(http)发送给谷歌的云消息(Firebase CloudMessaging,FCM)服务器。若是对于苹果操作系统进行推送,则会用http把需要发送的数据发送给苹果操作系统的苹果推送通知服务(Apple Push Notification service,APNS)。
在上述实施例的基础上,执行任务的执行主体首先会触发一任务,因为任务已经被触发过了,所以当任务中断后,需要人工干预,如果不做干预,任务是不会被重新触发的。这和断线重连,然后继续发送文件内容是不同的。断线重连然后发送文件内容,通常是系统层面去做的事情。环境上,文件重发要求系统不能被关闭,因为系统关闭了那么这个任务的前后状态也没有了。也就无法重发了。文件重发的环境是基于稳定的系统环境,它的环境不能改变,文件重发可以理解为机器没有被关闭,然后任务发送过程中有一些错误,那么在发送过程中是可以有策略去调整重试的。
而本实施例中的任务重发它可以在任意的其他机器进行重启。正在发送的任务如果不通过维护一些状态,而是直接让机器去执行,那会出现不知道哪些任务是真正发送成功的问题。而通过维护一个任务的待发送、发送中、发送完成的状态,就可以确定任务的状态,再通过对的任务是否中断的判断,可以实现重发。
S105、确定中断的任务,作为目标任务。
观察每个任务执行的状态,任务的状态可以包括正在发送和完成发送。根据任务的状态确定任务是在进行中,还是已经中断。
当确定任务已经中断时,将中断的任务作为目标任务。
S106、响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
基于发生中断的目标任务,对目标任务进行重新执行的操作。重新执行的目的是为了向目标任务中的客户端重新进行推送。由于目标组别中的部分客户端已经接受了中断之前的推送,因此,在进行推送前还可以根据客户端的ID做去重处理,防止数据的重复推送。
本发明实施例通过将客户端划分至两个或两个以上的组别中;对每个组别分别设置任务;分别执行任务,以分别将数据(消息)推送至组别中的客户端;确定中断的任务,作为目标任务;响应于中断,重新执行目标任务,以将数据推送至目标任务对应组别中的客户端。这样对客户端进行分组,即使任务中断,也可以记录已经完成任务的组别的客户端,从而仅仅对未完成推送任务和推送任务中断的组别重新执行目标任务。与某些实现方式相比,减少了需要进行任务的客户端,实现了节约网络资源的目的。
实施例二
图2A为本发明实施例二提供的一种数据分发方法的流程图。本实施例是在实施例一的基础上进行了细化,详细描述了分别执行所述任务,以分别将所述数据推送至所述组别中的客户端的具体过程。参考图2A,该方法包括:
S201、接收待发送的数据。
S202、将客户端划分至两个或两个以上的组别中。
S203、对每个所述组别分别设置任务。
在一可行的实现方式中,一主播被10万用户所关注,当该主播发布一条关于直播时间改期的公告时,服务器接收该直播时间改期的公告,作为待发送的数据。预先设置一个组别可容纳的客户端的数量为3万,因此,该10万用户被分为四个组别,分别命名为第一组别、第二组别、第三组别和第四组别,第一组别、第二组别和第三组别都被划分了3万个客户端。第四组别被划分了1万个客户端。分别对第一组别、第二组别、第三组别和第四组别设置推送直播时间改期的公告这一任务。为了方便对每个组别的管理,可以为每个组别的任务设置编号(PUSHID)。
S204、分别执行所述任务,以分别将所述数据推送至所述组别中的客户端。
在一可行的实现方式中,可以遍历每个组别内的客户端用户,然后依次地交给推送的SDK(simple-develop-key,简单的开发钥匙)去负责推送。比如说针对安卓的推送,可以把用户的数据利用请求-响应协议(http)发送给谷歌的云消息(Firebase CloudMessaging,FCM)服务器。若是对于苹果操作系统进行推送,则会用http把需要发送的数据发送给苹果操作系统的苹果推送通知服务(Apple Push Notification service,APNS)。
此步骤包括如下的具体步骤:
S2041、当未将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为正在发送。
S2042、当已将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为完成发送。
S2043、统计已推送所述数据的客户端的数量。
确定每个组别的任务的任务状态,任务状态包括:正在发送和完成发送。正在发送是指组别中的客户端尚未全部接收推送的数据。完成发送是指组别中的客户端全部接收推送的数据。
在对组别中的客户端进行推送时,记录已经推送的客户端的数量。以对安卓的客户端进行推送为例进行说明,当把需要进行推送的数据利用http发送给FCM服务器时,将推送的客户端的数量加一。对使用苹果操作系统(iPhone operating system,iOS)的客户端进行推送时,当把需要进行推送的数据利用http发送给APNS服务器时,将推送的客户端的数量加一。
S205、确定中断的任务,作为目标任务。
当一个任务正在进行时,遇到系统发版、系统奔溃或者网络故障等不可预见的情况,都可能导致任务中断。因为一个任务是在一执行主体的应用上执行的,任务执行到一半,这个执行主体宕机或是应用被异常关闭,那么这个任务就会被中断。
从任务中确定中断的任务,作为目标任务。
在一可行的实现方式中,可以通过如下的具体步骤确定任务是否中断:
S2051、至少两次确定所述组别的状态与已推送所述数据的客户端的数量。
S2052、若至少两次所述状态均为正在发送、且至少两次所述数量相同,则确定所述任务为中断的目标任务。
其中,组别的状态即任务状态,包括:正在发送和完成发送。客户端的数量包括:有变化和无变化两种情况。已推送的客户端的数量的计算方式,可以参考步骤S2043中,统计已推送所述数据的客户端的数量的具体描述。
在一可行的实现方式中,两次确定任务的状态和客户端的数量。若第一次任务的状态为正在发送,第二次任务的状态为完成发送,则该任务不属于中断的目标任务。若第一次任务的状态为完成发送,则该任务不属于中断的目标任务。若第一次任务的状态为正在发送,第二次任务的状态也为正在发送,则该进一步判断客户端的数量的状态。若客户端的数量的状态为有变化,则该任务不属于中断的目标任务;若客户端的数量的状态为无变化,则该任务属于中断的目标任务。
在一可行的实现方式中,首先确定任务运行的时间阈值,若任务超时,则记录组别的状态与已推送所述数据的客户端的数量;若状态为正在发送,则设置一时间段;若超过时间段,则记录组别的状态与已推送数据的客户端的数量。图2B为本发明实施例二提供的判断任务中断的示意图。参考图2B,当前时间为07:08:00,将任务运行的一般时间阈值设置为2分钟,即运行区间21为当前时间07:08:00与2分钟前的07:06:00构成的区间。将任务运行的最长时间阈值设置为12分钟,即距离当前时间超过12分钟的任务均认为是中断的目标任务。可以理解为中断区间22为距离当前时间2分钟前的07:06:00与距离当前时间12分钟前的06:56:00构成的区间。确定任务开始的时间点,若该时间点落入运行区间21,则不记录该任务中已推送数据的客户端的数量;若该时间点落入中断区间22,则记录该任务中已推送数据的客户端的数量。
S206、响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
当确定一个中断的任务为目标任务后,重新执行该任务。重新执行是指对某一组别的客户端重新推送数据。
此步骤可包括如下的具体步骤:
S2061、响应于所述中断,撤销所述目标任务。
S2062、执行所述目标任务,将所述数据重新推送至所述目标任务对应组别中的所有客户端。
在一可行的实现方式中,由于目标任务已经中断,因此撤销该目标任务。重新执行该目标任务,以将数据重新推送至目标任务对应组别中的所有客户端。为了防止重复推送,可以根据苹果推送通知服务和谷歌的云消息服务器的属性设置去重处理,这样可以减轻推送主体端的压力。
此步骤还可包括如下的具体步骤:
S2063、响应于所述中断,撤销所述目标任务;
S2064、确定所述目标任务对应组别中已推送所述数据的客户端;
S2065、执行所述目标任务,以将所述数据推送至所述目标任务对应组别中、未推送所述数据的客户端。
在一可行的实现方式中,由于目标任务已经中断,因此撤销该目标任务。重新执行该目标任务,同时根据目标任务对应组别中已推送数据的客户端的信息,在推送主体端进行去重处理。以将数据重新推送至目标任务对应组别中的所有客户端。
步骤S2016-S2062与步骤S2063-S2065之间不存在先后关系,可以择一也可以并存。
实施例三
图3为本发明实施例三提供的一种数据分发装置的结构图。参考图3,该装置包括:数据确定模块31、客户端划分模块32、任务设置模块33、任务执行模块34、目标任务确定模块35和中断响应模块36。其中:
数据确定模块31,用于接收待发送的数据;
客户端划分模块32,用于将客户端划分至两个或两个以上的组别中;
任务设置模块33,用于对每个所述组别分别设置任务;
任务执行模块34,用于分别执行所述任务,以分别将所述数据推送至所述组别中的客户端;
目标任务确定模块35,用于确定中断的任务,作为目标任务;
中断响应模块36,用于响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
本发明实施例通过将客户端划分至两个或两个以上的组别中;对每个组别分别设置任务;分别执行任务,以分别将数据(消息)推送至组别中的客户端;确定中断的任务,作为目标任务;响应于中断,重新执行目标任务,以将数据推送至目标任务对应组别中的客户端。这样对客户端进行分组,即使任务中断,也可以记录已经完成任务的组别的客户端,从而仅仅对未完成推送任务和推送任务中断的组别重新执行目标任务。与某些实现方式相比,减少了需要进行任务的客户端,实现了节约网络资源的目的。
在上述实施例的基础上,还包括:
任务触发模块,用于执行所述任务的执行主体触发一任务;
中断触发模块,用于确定所述执行主体或执行所述任务的线程异常,以导致所述任务在被触发后中断。
在上述实施例的基础上,客户端划分模块包括:
组别确定子模块,用于确定两个或两个以上的组别;
组别划分子模块,用于将所述客户端按照预设数量划分至所述组别中。
在上述实施例的基础上,任务执行模块包括:
第一状态确定子模块,用于当未将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为正在发送;
第二状态确定子模块,用于当已将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为完成发送;
数量确定第一子模块,用于统计已推送所述数据的客户端的数量。
在上述实施例的基础上,目标任务确定模块包括:
数量确定第二子模块,用于至少两次确定所述组别的状态与已推送所述数据的客户端的数量;
目标任务确定子模块,用于若至少两次所述状态均为正在发送、且至少两次所述数量相同,则确定所述任务为中断的目标任务。
在上述实施例的基础上,数量确定第二子模块包括:
数量确定第一单元,用于若所述任务超时,则记录所述组别的状态与已推送所述数据的客户端的数量;
时间段设置单元,用于若所述状态为正在发送,则设置一时间段;
数量确定第二单元,用于若超过所述时间段,则记录所述组别的状态与已推送所述数据的客户端的数量。
在上述实施例的基础上,中断响应模块包括:
任务撤销第一子模块,用于响应于所述中断,撤销所述目标任务;
任务推送第一子模块,用于执行所述目标任务,将所述数据重新推送至所述目标任务对应组别中的所有客户端;
或者,
任务撤销第二子模块,用于响应于所述中断,撤销所述目标任务;
推送状态确定子模块,用于确定所述目标任务对应组别中已推送所述数据的客户端;
任务推送第二子模块,用于执行所述目标任务,以将所述数据推送至所述目标任务对应组别中、未推送所述数据的客户端。
本实施例提供的一种数据分发装置可用于执行实施例一、实施例二提供的一种数据分发方法,具有相应的功能和有益效果。
实施例四
图4为本发明实施例四提供的一种电子设备的结构示意图。如图4所示,该电子设备包括处理器40、存储器41、通信模块42、输入装置43和输出装置44;电子设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;电子设备中的处理器40、存储器41、通信模块42、输入装置43和输出装置44可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本实施例中的一种数据分发方法对应的模块(例如,一种数据分发装置中的数据确定模块31、客户端划分模块32、任务设置模块33、任务执行模块34、目标任务确定模块35和中断响应模块36)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的一种数据分发方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信模块42,用于与显示屏建立连接,并实现与显示屏的数据交互。输入装置43可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。
本实施例提供的一种电子设备,可执行本发明任一实施例提供的数据分发方法,具体相应的功能和有益效果。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据分发方法,该方法包括:
接收待发送的数据;
将客户端划分至两个或两个以上的组别中;
对每个所述组别分别设置任务;
分别执行所述任务,以分别将所述数据推送至所述组别中的客户端;
确定中断的任务,作为目标任务;
响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任一实施例所提供的数据分发方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据分发装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据分发方法,其特征在于,包括:
接收待发送的数据;
将客户端划分至两个或两个以上的组别中;
对每个所述组别分别设置任务;
分别执行所述任务,以分别将所述数据推送至所述组别中的客户端;
确定中断的任务,作为目标任务;
响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
2.根据权利要求1所述的方法,其特征在于,还包括:
执行所述任务的执行主体触发一任务;
确定所述执行主体或执行所述任务的线程异常,以导致所述任务在被触发后中断。
3.根据权利要求1所述的方法,其特征在于,所述将客户端划分至两个或两个以上的组别中,包括:
确定两个或两个以上的组别;
将所述客户端按照预设数量划分至所述组别中。
4.根据权利要求1所述的方法,其特征在于,所述分别执行所述任务,以分别将所述数据推送至所述组别中的客户端,包括:
当未将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为正在发送;
当已将所述数据推送至所述组别中的所有客户端时,记录所述任务的状态为完成发送;
统计已推送所述数据的客户端的数量。
5.根据权利要求1所述的方法,其特征在于,所述确定中断的任务,作为目标任务,包括:
至少两次确定所述组别的状态与已推送所述数据的客户端的数量;
若至少两次所述状态均为正在发送、且至少两次所述数量相同,则确定所述任务为中断的目标任务。
6.根据权利要求5所述的方法,其特征在于,所述至少两次确定所述组别的状态与已推送所述数据的客户端的数量,包括:
若所述任务超时,则记录所述组别的状态与已推送所述数据的客户端的数量;
若所述状态为正在发送,则设置一时间段;
若超过所述时间段,则记录所述组别的状态与已推送所述数据的客户端的数量。
7.根据权利要求1所述的方法,其特征在于,所述响应于所述中断,重新执行所述目标任务,包括:
响应于所述中断,撤销所述目标任务;
执行所述目标任务,将所述数据重新推送至所述目标任务对应组别中的所有客户端;
或者,
响应于所述中断,撤销所述目标任务;
确定所述目标任务对应组别中已推送所述数据的客户端;
执行所述目标任务,以将所述数据推送至所述目标任务对应组别中、未推送所述数据的客户端。
8.一种数据分发装置,其特征在于,包括:
数据确定模块,用于接收待发送的数据;
客户端划分模块,用于将客户端划分至两个或两个以上的组别中;
任务设置模块,用于对每个所述组别分别设置任务;
任务执行模块,用于分别执行所述任务,以分别将所述数据推送至所述组别中的客户端;
目标任务确定模块,用于确定中断的任务,作为目标任务;
中断响应模块,用于响应于所述中断,重新执行所述目标任务,以将所述数据推送至所述目标任务对应组别中的客户端。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的一种数据分发方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的一种数据分发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838215.3A CN110557453B (zh) | 2019-09-05 | 2019-09-05 | 一种数据分发方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838215.3A CN110557453B (zh) | 2019-09-05 | 2019-09-05 | 一种数据分发方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110557453A true CN110557453A (zh) | 2019-12-10 |
CN110557453B CN110557453B (zh) | 2022-10-04 |
Family
ID=68739251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910838215.3A Active CN110557453B (zh) | 2019-09-05 | 2019-09-05 | 一种数据分发方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110557453B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111741060A (zh) * | 2020-05-08 | 2020-10-02 | 广州三七互娱科技有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1402470A (zh) * | 2002-09-12 | 2003-03-12 | 上海华广科技有限公司 | 隧道组播方法 |
CN1941932A (zh) * | 2005-09-27 | 2007-04-04 | 华为技术有限公司 | 组发短消息实现方法 |
US20100257201A1 (en) * | 2008-05-30 | 2010-10-07 | Tencent Technology (Shenzhen) Company Limited | Method And System For Pulling Network Contents |
CN103024694A (zh) * | 2012-12-10 | 2013-04-03 | 广东欧珀移动通信有限公司 | 一种多人信息发送方法、装置及移动终端 |
US8751699B1 (en) * | 2011-12-22 | 2014-06-10 | Western Digital Technologies, Inc. | Systems and methods for indication of activity status of a storage device |
CN105071975A (zh) * | 2015-09-07 | 2015-11-18 | 北京瑞星信息技术有限公司 | 数据传输和分发的方法及系统 |
CN106998274A (zh) * | 2016-12-12 | 2017-08-01 | 深圳大宇无限科技有限公司 | 应用消息推送方法和装置 |
CN107318128A (zh) * | 2017-06-26 | 2017-11-03 | 长沙中天电子设计开发有限公司 | 无线通信优化方法、装置、存储介质及其计算机设备 |
CN107395416A (zh) * | 2017-07-20 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据发送方法及服务器集群 |
CN107872900A (zh) * | 2017-10-31 | 2018-04-03 | 西安空间无线电技术研究所 | 一种支持区分服务的卫星信道s‑aloha接入系统及方法 |
CN109600672A (zh) * | 2018-10-19 | 2019-04-09 | 北京微播视界科技有限公司 | 视频内容推送方法及装置 |
-
2019
- 2019-09-05 CN CN201910838215.3A patent/CN110557453B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1402470A (zh) * | 2002-09-12 | 2003-03-12 | 上海华广科技有限公司 | 隧道组播方法 |
CN1941932A (zh) * | 2005-09-27 | 2007-04-04 | 华为技术有限公司 | 组发短消息实现方法 |
US20100257201A1 (en) * | 2008-05-30 | 2010-10-07 | Tencent Technology (Shenzhen) Company Limited | Method And System For Pulling Network Contents |
US8751699B1 (en) * | 2011-12-22 | 2014-06-10 | Western Digital Technologies, Inc. | Systems and methods for indication of activity status of a storage device |
CN103024694A (zh) * | 2012-12-10 | 2013-04-03 | 广东欧珀移动通信有限公司 | 一种多人信息发送方法、装置及移动终端 |
CN105071975A (zh) * | 2015-09-07 | 2015-11-18 | 北京瑞星信息技术有限公司 | 数据传输和分发的方法及系统 |
CN106998274A (zh) * | 2016-12-12 | 2017-08-01 | 深圳大宇无限科技有限公司 | 应用消息推送方法和装置 |
CN107318128A (zh) * | 2017-06-26 | 2017-11-03 | 长沙中天电子设计开发有限公司 | 无线通信优化方法、装置、存储介质及其计算机设备 |
CN107395416A (zh) * | 2017-07-20 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据发送方法及服务器集群 |
CN107872900A (zh) * | 2017-10-31 | 2018-04-03 | 西安空间无线电技术研究所 | 一种支持区分服务的卫星信道s‑aloha接入系统及方法 |
CN109600672A (zh) * | 2018-10-19 | 2019-04-09 | 北京微播视界科技有限公司 | 视频内容推送方法及装置 |
Non-Patent Citations (2)
Title |
---|
GUO ZHONGWEN等: "DPOI: Distributed Software System Development Platform for Ocean Information Service", 《JOURNAL OF OCEAN UNIVERSITY OF CHINA》 * |
王树: "基于组播的文件快速广播模块设计与实现", 《软件导刊》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111741060A (zh) * | 2020-05-08 | 2020-10-02 | 广州三七互娱科技有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
CN111741060B (zh) * | 2020-05-08 | 2023-12-12 | 广州三七互娱科技有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110557453B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449410B (zh) | 一种云平台中消息管理方法、系统及相关装置 | |
CN110418376B (zh) | 数据传输方法及装置 | |
CN109474688B (zh) | 即时通信网络请求消息的发送方法、装置、设备和介质 | |
EP3709664A1 (en) | Stream pushing method, system and server | |
WO2021237433A1 (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
US11102319B2 (en) | Method, system and server for stream-pushing | |
CN112579148A (zh) | 基于业务代理的业务消息处理方法、装置及电子设备 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
CN106899605B (zh) | 基于stomp协议的通信方法和装置 | |
CN110557453B (zh) | 一种数据分发方法、装置、设备和存储介质 | |
CN106789913B (zh) | 用户账号管理方法及装置 | |
WO2022121978A1 (zh) | 直播间置顶消息确定方法、装置、设备和存储介质 | |
CN107346217B (zh) | 一种云硬盘管理方法、云计算管理平台及虚拟化平台 | |
CN113098978B (zh) | 一种数据传输方法、装置及介质 | |
CN109005465B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN115037786B (zh) | 提高数据传输效率的方法及相关设备 | |
CN111090818A (zh) | 资源管理方法、资源管理系统、服务器及计算机存储介质 | |
CN114465997A (zh) | 数据同步方法及装置、电子设备和存储介质 | |
CN113055493A (zh) | 数据包处理方法、装置、系统、调度设备和存储介质 | |
WO2022111029A1 (zh) | 信息广播方法、装置、广播系统和存储介质 | |
CN110990213A (zh) | 一种集群环境用户日志实时监控方法及装置 | |
CN110545237A (zh) | 一种即时通讯方法、装置、系统、计算机设备和存储介质 | |
CN110569673A (zh) | 一种数据文件处理方法、装置、设备及储存介质 | |
CN114979169B (zh) | 一种网络资源推送方法、装置、存储介质及电子设备 | |
US20240054109A1 (en) | Dynamic file based publish-subscribe method and system |
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 |