CN112214336B - 数据队列推送方法、装置、计算机设备和存储介质 - Google Patents
数据队列推送方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112214336B CN112214336B CN202011097363.3A CN202011097363A CN112214336B CN 112214336 B CN112214336 B CN 112214336B CN 202011097363 A CN202011097363 A CN 202011097363A CN 112214336 B CN112214336 B CN 112214336B
- Authority
- CN
- China
- Prior art keywords
- pushed
- data
- timer
- current
- pushing
- 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.)
- Active
Links
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Electronic Switches (AREA)
Abstract
本申请涉及一种数据队列推送方法、装置、计算机设备和存储介质。该方法包括:获取待推送数据队列;从待推送数据队列中确定当前待推送数据;通过常规定时器推送当前待推送数据,获取当前待推送数据的第一当前推送状态;在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器推送当前待推送数据,获取当前待推送数据的第二当前推送状态;在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。采用本方法能够保证数据的提交效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据队列推送方法、装置、计算机设备和存储介质。
背景技术
众所周知,终端信息提交保存依赖于网络,在排除程序介入的情况下,网速决定通信质量和速度,所以网速的快慢直接影响信息提交的质量和结果。但是终端的网络状态很多时候是多变而且不可控的。所以,如何在弱网甚至是短时间无网络的状态下保证数据不丢失并且尽可能的及时进行数据提交,就变得不能回避。目前,在弱网甚至是短时间无网络的状态下,通常将数据缓存至本地,直至网络情况正常时,才能实现数据的提交,然而,这种方式,无法保证数据提交的实时性,导致数据的提交效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种数据队列推送方法、装置、计算机设备和存储介质,在任何网络状态下,能够灵活间隔启用两个定时器,通过两个定时器设置一定的时间一次尝试连接网络,一旦连接成功立刻开启其中一个定时器推送保存离线数据,保证数据的提交效率。
一种数据队列推送方法,该方法包括:
获取待推送数据队列,待推送数据队列包括至少一个待推送数据;
从待推送数据队列中确定当前待推送数据;
通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;
在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;
在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在其中一个实施例中,数据队列推送方法还包括:在第一当前推送状态不是网络异常状态时,根据第一当前推送状态确定当前待推送数据是否推送成功;在确定当前待推送数据推送成功时,从待推送数队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送;在确定当前待推送数据推送不成功时,重新进行步骤通过常规定时器推送当前待推送数据,直至当前待推送数据推送成功。
在其中一个实施例中,数据队列推送方法还包括:在第二当前推送状态为网络异常状态时,保持补充定时器运行,重新通过补充定时器获取下一个预设时间段,在达到下一个预设时间段时,推送当前待推送数据,直至当前待推送数据推送成功。
在其中一个实施例中,获取待推送数据队列,待推送数据队列包括至少一个待推送数据,包括:获取至少一个初始待推送数据;获取预设数据处理规则,根据预设数据处理规则对至少一个初始待推送数据进行处理,得到对应的待推送数据;根据至少一个待推送数据组成待推送数据队列。
在其中一个实施例中,从待推送数据队列中确定当前待推送数据,包括:获取待推送数据队列中至少一个待推送数据对应的待推送数据优先级;根据待推送数据优先级从待推送数据队列中确定当前待推送数据。
在其中一个实施例中,在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态,包括:在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,发送补充定时器启动指令至补充定时器,以使补充定时器根据补充定时器启动指令获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
在其中一个实施例中,在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送,包括:在第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至补充定时器,补充定时器根据补充定时器关闭指令停止工作,发送常规定时器启动指令至常规定时器,以使常规定时器根据常规定时器启动指令从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在其中一个实施例中,数据队列推送方法还包括:在待推送数据队列中全部待推送数据完成数据推送时,获取定时器清空指令;根据定时器清空指令对常规定时器和补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。
一种数据队列推送装置,该装置包括:
待推送数据获取模块,用于获取待推送数据队列,待推送数据队列包括至少一个待推送数据;
当前待推送数据确定模块,用于从待推送数据队列中确定当前待推送数据;
常规定时器处理模块,用于通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;
补充定时器处理模块,用于在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;
常规定时器循环处理模块,用于在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待推送数据队列,待推送数据队列包括至少一个待推送数据;
从待推送数据队列中确定当前待推送数据;
通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;
在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;
在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待推送数据队列,所述待推送数据队列包括至少一个待推送数据;
从待推送数据队列中确定当前待推送数据;
通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;
在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;
在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
上述数据队列推送方法、装置、计算机设备和存储介质,获取待推送数据队列,待推送数据队列包括至少一个待推送数据;从待推送数据队列中确定当前待推送数据;通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
其中,常规定时器是在网络正常的情况下不断连接网络,进行数据的推送,当网络出现异常的情况下,关闭常规定时器,启动补充定时器,通过补充定时器不断连接网络,进行数据的推送,灵活间隔启用两个定时器,通过两个定时器设置一定的时间一次尝试连接网络,一旦连接成功立刻开启其中一个定时器推送保存离线数据,保证数据的提交效率。而且,同时间歇控制两个定时器也规避了多个定时器对性能的损耗。
附图说明
图1为一个实施例中数据队列推送方法的应用环境图;
图2为一个实施例中数据队列推送方法的流程示意图;
图3为一个实施例中数据队列推送方法的流程示意图;
图4为一个实施例中待推送数据队列获取步骤的流程示意图;
图5为一个实施例中当前待推送数据确定步骤的流程示意图;
图6为一个实施例中数据队列推送方法的流程示意图;
图7为一个实施例中数据队列推送装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据队列推送方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体地,终端102获取待推送数据队列,待推送数据队列包括至少一个待推送数据,从待推送数据队列中确定当前待推送数据,通过常规定时器向服务器104推送当前待推送数据,接收服务器104返回的当前待推送数据对应的第一当前推送状态。其中,在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内向服务器104推送当前待推送数据,获取服务器104返回的当前待推送数据对应的第二当前推送状态。其中,在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,如图2所示,提供了一种数据队列推送方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,获取待推送数据队列,待推送数据队列包括至少一个待推送数据。
其中,待推送数据是终端等待推送的数据,而待推送数据队列是数据功能,用来实现先进先出的排队功能,待推送数据队列包括至少一个待推送数据,各个待推推送数据是否按照时间栈进行排序,是否按照其他预设规则进行排序,或者按照先进先出的规则进行排序可根据业务需求、实际应用场景或产品需求进行确定得到。
在另一个实施例中,待推送数据队列中的待推送数据相应的数据结构保持一致,因此,在获取各个待推送数据对应的初始待推送数据后,各个初始待推送数据对应的数据结构可能都不同,为了保持待推送数据队列的数据格式相同,获取预设数据处理规则,根据预设数据处理规则对各个初始待推送数据进行处理,得到处理后的待推送数据,可以由各个待推送数据组成待推送数据队列。例如,预设数据处理规则可以为对初始待推送数据的操作类型、变量或者增量信息进行处理。其中,预设数据处理规则可以根据业务需求、产品需求或实际应用场景进行确定得到。
步骤204,从待推送数据队列中确定当前待推送数据。
其中,这里的当前待推送数据是指目前正在处理的待推送数据,当前待推送数据是从待推送数据队列中确定得到的,其中,确定的方式可自定义,自定义可以是随机从待推送数据队列中选取一个待推送数据确定为当前待推送数据,自定义还可以是获取待推送数据队列中各个待推送数据对应的待推送数据优先级,根据待推送数据优先级从待推送数据队列中确定当前待推送数据,例如,可以将待推送数据优先级高的,确定为此次的当前待推送数据。其中,在另一个实施例中,当前待推送数据的确定方式自定义还可以是,待推送数据队列中的带推送数据是按照先进先出的顺序进行排序,可以按照先进先出的顺序确定当前待推送数据,例如,可以将待推送数据队列中先出的待推送数据确定为当前待推送数据。
步骤206,通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态。
其中,这里的定时器是一种用于控制时间的装置,可以通过设置时间,在达到设置的时间后,可以通过定时器进行工作。而所谓的常规定时器是指经常使用的定时器,常规定时器中设置的时间较短,也就是常规定时器较频繁的进行工作,常规定时器在网络正常情况下,会正常进行工作,一旦出现网路异常,则常规定时器就会失效,无法工作。其中,在终端内部,预先设置有常规定时器,可以通过常规定时器推送当前待推送数据,其中,通过常规定时器推送当前待推送数据具体可以是,常规定时器获取预设时间段,当达到预设时间段时,常规定时器向服务器推送当前待推送数据。其中,预设时间段可以根据业务需求、产品需求或实际应用场景进行确定得到。
其中,常规定时器向服务器推送当前待推送数据时,如果网络正常的情况下,常规定时器会成功向服务器推送当前待推送数据,服务器在接收到常规定时器推送的当前待推送数据后,会返回常规定时器相应的第一当前推送状态,此时第一当前推送状态为网络正常状态。在另一个实施例中,如果网络出现异常,则常规定时器会无法工作,即无法向服务器推送当前待推送数据,获取当前待推送数据对应的当前待推送数据响应时间,当达到当前待推送数据响应时间时,还是没有接收到服务器返回的任何推送状态,则可以确定当前待推送数据对应的第一当前推送状态为网络异常状态。
步骤208,在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态。
其中,在获取当前待推送数据对应的第一当前推送状态后,如果第一当前推送状态为网络异常状态时,说明当前待推送数据的推送网络出现异常,无法完成当前待推送数据的推送。而且,当前待推送数据此时的网络出现异常,则常规定时器是无法工作的,为了避免当前待推送数据出现数据推送延迟,保证当前待推送数据的推送效率,此时,应该关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据。
其中,这里的补充定时器也是一种用于控制时间的定时装置,与常规定时器不同的是,如果没有出现网络异常,或者是其他非网络原因导致当前待推送数据无法推送,补充定时器是不会启动的,也就是说,这里的补充定时器是专门在网络出现异常的情况下,开始工作,获取预设时间段,在达到预设时间段时,补充定时器进行当前待推送数据的推送。其中,这里的预设时间段具体可以根据业务需求、产品需求或实际应用场景进行确定得到,补充定时器对应的预设时间段可以大于常规定时器对应的预设时间段,即,补充定时器不需要很频繁的推送当前待推送数据,推送的频率可以比常规定时器小一点。
同样地,补充定时器向服务器推送当前待推送数据时,如果网络正常的情况下,补充定时器会成功向服务器推送当前待推送数据,服务器在接收到补充定时器推送的当前待推送数据后,会返回补充定时器对应的第二当前推送状态,此时第二当前推送状态为网络正常状态。
在另一个实施例中,如果网络出现异常,保持补充定时器运行,即补充定时器继续工作,补充定时器重新获取下一个预设时间段,在达到下一个预设时间段时,再次推送当前待推送数据,直至补充定时器将当前待推送数据推送成功。
步骤210,在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
其中,在获取到当前待推送数据对应的第二当前推送状态后,如果第二当前推送状态为网络正常状态时,说明当前待推送数据的推送网络已经恢复正常,可以启动常规定时器完成待推送数据队列中其他待推送数据的推送。具体可以是,在第二当前推送状态为网络正常状态时,关闭补充定时器,可以发送补充定时器关闭指令至补充定时器,补充定时器接收到补充定时器关闭指令后,停止工作,同时启动常规定时器,具体可以是,同时发送常规定时器启动指令,常规定时器在接收到常规定时器启动指令后,开始工作,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
上述数据队列推送方法中,获取待推送数据队列,待推送数据队列包括至少一个待推送数据;从待推送数据队列中确定当前待推送数据;通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
其中,常规定时器是在网络正常的情况下不断连接网络,进行数据的推送,当网络出现异常的情况下,关闭常规定时器,启动补充定时器,通过补充定时器不断连接网络,进行数据的推送,灵活间隔启用两个定时器,通过两个定时器设置一定的时间一次尝试连接网络,一旦连接成功立刻开启其中一个定时器推送保存离线数据,保证数据的提交效率。而且,同时间歇控制两个定时器也规避了多个定时器对性能的损耗。
在一个实施例中,如图3所示,数据队列推送方法还包括:
步骤302,在第一当前推送状态不是网络异常状态时,根据第一当前推送状态确定当前待推送数据是否推送成功。
步骤304,在确定当前待推送数据推送成功时,从待推送数队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
步骤306,在确定当前待推送数据推送不成功时,重新进行步骤通过常规定时器推送当前待推送数据,直至当前待推送数据推送成功。
其中,如果第一当前推送状态不是网络异常状态时,第一当前推送状态可以是第一当前推送成功状态,还可以是由于别的非网络异常原因导致常规定时器无法正常推送当前待推送数据,导致当前待推送数据推送失败。因此,在第一当前推送状态不是网络异常状态时,判断当前待推送数据是否推送成功,具体可以是,根据第一当前推送状态确定当前待推送数据是否推送成功,例如,接收到服务器返回的响应即表示当前待推送数据推送成功,反之,若一直没有接收到服务器返回的响应即表示当前待推送数据推送失败。
进一步地,在确定当前待推送数据推送成功时,说明此时网络情况是正常的且没有出现其他非网络异常的原因,常规定时器可以继续进行待推送数据的推送,具体地,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在另一个实施例中,在确定当前待推送数据推送不成功时,说明此次当前待推送数据推送失败,但是失败的原因并不是网络异常,而是其他非网络异常原因,对于这种非网络异常原因导致的当前待推送数据推送失败,常规定时器需要继续保持运行,获取下一个常规定时器设置的预设时间段,在达到该预设时间段时,当前待推送数据再次通过常规定时器进行推送,直至当前待推送数据推送成功。
在一个实施例中,在第二当前推送状态为网络异常状态时,保持补充定时器运行,重新通过补充定时器获取下一个预设时间段,在达到下一个预设时间段时,推送当前待推送数据,直至当前待推送数据推送成功。
其中,在获取到当前待推送数据对应的第二当前推送状态后,如果第二当前推送状态为网络异常状态时,说明当前待推送数据的推送网络并没有恢复正常,补充定时器依旧需要继续运行,即保持补充定时器运行,获取补充定时器设置的下一个预设时间段,当达到下一个预设时间段时,补充定时器重新推送当前待推送数据,直至当前待推送数据推送成功。进一步地,若当前待推送数据推送成功时,说明网络已经恢复正常了,因此,可以启动常规定时器完成待推送数据队列中其他待推送数据的推送。
在一个实施例中,如图4所示,获取待推送数据队列,待推送数据队列包括至少一个待推送数据,包括:
步骤402,获取至少一个初始待推送数据。
步骤404,获取预设数据处理规则,根据预设数据处理规则对至少一个初始待推送数据进行处理,得到对应的待推送数据。
步骤406,根据至少一个待推送数据组成待推送数据队列。
其中,这里的初始待推送数据是指待推送数据之前的数据,各个初始待推送数据之间的数据结构、数据格式可能都不相同,为了保持待推送数据队列的数据格式相同,获取预设数据处理规则,根据预设数据处理规则对各个初始待推送数据进行处理,得到处理后的待推送数据,可以由各个待推送数据组成待推送数据队列。
例如,预设数据处理规则可以为对初始待推送数据的操作类型、变量或者增量信息进行处理。其中,预设数据处理规则可以根据业务需求、产品需求或实际应用场景进行确定得到。
其中,根据至少一个待推送数据组成待推送数据队列具体可以是,各个待推推送数据是否按照时间栈进行排序,是否按照其他预设规则进行排序,或者按照先进先出的规则进行排序,或者是否按照待推送数据相应的优先级进行排序可根据业务需求、实际应用场景或产品需求进行确定得到。
在一个实施例中,如图5所示,从待推送数据队列中确定当前待推送数据,包括:
步骤502,获取待推送数据队列中至少一个待推送数据对应的待推送数据优先级。
步骤504,根据待推送数据优先级从待推送数据队列中确定当前待推送数据。
其中,这里的当前待推送数据是指目前正在处理的待推送数据,当前待推送数据是从待推送数据队列中确定得到的,其中,确定的方式可自定义,自定义可以是随机从待推送数据队列中选取一个待推送数据确定为当前待推送数据,自定义还可以是获取待推送数据队列中各个待推送数据对应的待推送数据优先级,根据待推送数据优先级从待推送数据队列中确定当前待推送数据,例如,可以将待推送数据优先级高的,确定为此次的当前待推送数据。
其中,各个待推送数据对应的待推送数据优先级可以预先根据业务需求、产品需求或者实际应用场景进行确定得到,优先级高的待推送数据可以排在优先级低的待推送数据之前,优先级高的待推送数据可以先推送出去,因此,可以按照待推送数据对应的待推送数据优先级的降序顺序,组成当前待推送数据队列。
进一步地,再根据待推送数据优先级从待推送数据队列中确定当前待推送数据,可以将优先级高的待推送数据确定为当前待推送数据,在当前待推送数据完成推送后,获取第二优先级高的待推送数据确定为当前待推送数据。
在一个实施例中,在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态,包括:在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,发送补充定时器启动指令至补充定时器,以使补充定时器根据补充定时器启动指令获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
其中,在获取当前待推送数据对应的第一当前推送状态后,如果第一当前推送状态为网络异常状态时,说明当前待推送数据的推送网络出现异常,无法完成当前待推送数据的推送。而且,当前待推送数据此时的网络出现异常,则常规定时器是无法工作的,为了避免当前待推送数据出现数据推送延迟,保证当前待推送数据的推送效率,此时,应该关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据。具体可以是,在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,同时,发送补充定时器启动指令至补充定时器,补充定时器根据补充定时器启动指令,获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
其中,这里的补充定时器也是一种用于控制时间的定时装置,与常规定时器不同的是,如果没有出现网络异常,或者是其他非网络原因导致当前待推送数据无法推送,补充定时器是不会启动的,也就是说,这里的补充定时器是专门在网络出现异常的情况下,开始工作,获取预设时间段,在达到预设时间段时,补充定时器进行当前待推送数据的推送。其中,这里的预设时间段具体可以根据业务需求、产品需求或实际应用场景进行确定得到,补充定时器对应的预设时间段可以大于常规定时器对应的预设时间段,即,补充定时器不需要很频繁的推送当前待推送数据,推送的频率可以比常规定时器小一点。
同样地,补充定时器向服务器推送当前待推送数据时,如果网络正常的情况下,补充定时器会成功向服务器推送当前待推送数据,服务器在接收到补充定时器推送的当前待推送数据后,会返回补充定时器对应的第二当前推送状态,此时第二当前推送状态为网络正常状态。
在另一个实施例中,如果网络出现异常,保持补充定时器运行,即补充定时器继续工作,补充定时器重新获取下一个预设时间段,在达到下一个预设时间段时,再次推送当前待推送数据,直至补充定时器将当前待推送数据推送成功。
在一个实施例中,在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送,包括:在第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至补充定时器,补充定时器根据补充定时器关闭指令停止工作,发送常规定时器启动指令至常规定时器,以使常规定时器根据常规定时器启动指令从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
其中,在获取到当前待推送数据对应的第二当前推送状态后,如果第二当前推送状态为网络正常状态时,说明当前待推送数据的推送网络已经恢复正常,可以启动常规定时器完成待推送数据队列中其他待推送数据的推送。具体可以是,在第二当前推送状态为网络正常状态时,关闭补充定时器,可以发送补充定时器关闭指令至补充定时器,补充定时器接收到补充定时器关闭指令后,停止工作,同时启动常规定时器,具体可以是,同时发送常规定时器启动指令,常规定时器在接收到常规定时器启动指令后,开始工作,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,如图6所示,数据队列推送方法还包括:
步骤602,在待推送数据队列中全部待推送数据完成数据推送时,获取定时器清空指令。
步骤604,根据定时器清空指令对常规定时器和补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。
其中,这里的定时器清空指令是用来清空常规定时器和补充定时器的,当待推送数据队列中的全部待推送数据推送完成时,具体地,检测待推送数据队列中是否还存在待推送数据未完成数据推送,在待推送数据队列中不存在未完成的待推送数据时,获取定时器清空指令,可以根据定时器清空指令对常规定时器和补充定时器进行清空操作,避免常规定时器和补充定时器在下次运行时,留下此次处理痕迹,因此,在完成数据推送时,需要清空常规定时器和补充定时器,得到清空后的常规定时器和补充定时器。其中,清空后的常规定时器和补充定时器可用于处理下一个待推送数据队列,每一次待推送数据队列完成时可清空常规定时器和补充定时器,保证数据的安全性。
在一个具体的实施例中,提供了一种数据队列推送方法,具体包括以下步骤:
1、获取待推送数据队列,待推送数据队列包括至少一个待推送数据。
1-1、获取至少一个初始待推送数据。
1-2、获取预设数据处理规则,根据预设数据处理规则对至少一个初始待推送数据进行处理,得到对应的待推送数据。
1-3、根据至少一个待推送数据组成待推送数据队列。
2、从待推送数据队列中确定当前待推送数据。
2-1、获取待推送数据队列中至少一个待推送数据对应的待推送数据优先级。
2-2、根据待推送数据优先级从待推送数据队列中确定当前待推送数据。
3、通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态。
4、在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态。
4-1、在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,发送补充定时器启动指令至补充定时器,以使补充定时器根据补充定时器启动指令获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
5、在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
5-1、在第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至补充定时器,补充定时器根据补充定时器关闭指令停止工作,发送常规定时器启动指令至常规定时器,以使常规定时器根据常规定时器启动指令从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
6、在第一当前推送状态不是网络异常状态时,根据第一当前推送状态确定当前待推送数据是否推送成功。
7、在确定当前待推送数据推送成功时,从待推送数队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
8、在确定当前待推送数据推送不成功时,重新进行步骤通过常规定时器推送当前待推送数据,直至当前待推送数据推送成功。
9、在第二当前推送状态为网络异常状态时,保持补充定时器运行,重新通过补充定时器获取下一个预设时间段,在达到下一个预设时间段时,推送当前待推送数据,直至当前待推送数据推送成功。
10、在待推送数据队列中至少一个待推送数据完成数据推送时,获取定时器清空指令。
11、根据定时器清空指令对常规定时器和补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种数据队列推送装置700,包括:待推送数据获取模块702、当前待推送数据确定模块704、常规定时器处理模块706、补充定时器处理模块708和常规定时器循环处理模块710,其中:
待推送数据获取模块702,用于获取待推送数据队列,待推送数据队列包括至少一个待推送数据。
当前待推送数据确定模块704,用于从待推送数据队列中确定当前待推送数据。
常规定时器处理模块706,用于通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态。
补充定时器处理模块708,用于在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态。
常规定时器循环处理模块710,用于在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,数据队列推送装置700还用于在第一当前推送状态不是网络异常状态时,根据第一当前推送状态确定当前待推送数据是否推送成功,在确定当前待推送数据推送成功时,从待推送数队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送,在确定当前待推送数据推送不成功时,重新进行步骤通过常规定时器推送当前待推送数据,直至当前待推送数据推送成功。
在一个实施例中,数据队列推送装置700还用于在第二当前推送状态为网络异常状态时,保持补充定时器运行,重新通过补充定时器获取下一个预设时间段,在达到下一个预设时间段时,推送当前待推送数据,直至当前待推送数据推送成功。
在一个实施例中,待推送数据获取模块702还用于获取至少一个初始待推送数据,获取预设数据处理规则,根据预设数据处理规则对至少一个初始待推送数据进行处理,得到对应的待推送数据,根据至少一个待推送数据组成待推送数据队列。
在一个实施例中,当前待推送数据确定模块704还用于获取待推送数据队列中至少一个待推送数据对应的待推送数据优先级,根据待推送数据优先级从待推送数据队列中确定当前待推送数据。
在一个实施例中,补充定时器处理模块708还用于在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,发送补充定时器启动指令至补充定时器,以使补充定时器根据补充定时器启动指令获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
在一个实施例中,常规定时器循环处理模块710还用于在第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至补充定时器,补充定时器根据补充定时器关闭指令停止工作,发送常规定时器启动指令至常规定时器,以使常规定时器根据常规定时器启动指令从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,数据队列推送装置700还用于在待推送数据队列中全部待推送数据完成数据推送时,获取定时器清空指令,根据定时器清空指令对常规定时器和补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。关于数据队列推送装置的具体限定可以参见上文中对于数据队列推送方法的限定,在此不再赘述。上述数据队列推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据队列推送方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待推送数据队列,待推送数据队列包括至少一个待推送数据;从待推送数据队列中确定当前待推送数据;通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第一当前推送状态不是网络异常状态时,根据第一当前推送状态确定当前待推送数据是否推送成功;在确定当前待推送数据推送成功时,从待推送数队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送;在确定当前待推送数据推送不成功时,重新进行步骤通过常规定时器推送当前待推送数据,直至当前待推送数据推送成功。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第二当前推送状态为网络异常状态时,保持补充定时器运行,重新通过补充定时器获取下一个预设时间段,在达到下一个预设时间段时,推送当前待推送数据,直至当前待推送数据推送成功。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取至少一个初始待推送数据;获取预设数据处理规则,根据预设数据处理规则对至少一个初始待推送数据进行处理,得到对应的待推送数据;根据至少一个待推送数据组成待推送数据队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待推送数据队列中至少一个待推送数据对应的待推送数据优先级;根据待推送数据优先级从待推送数据队列中确定当前待推送数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,发送补充定时器启动指令至补充定时器,以使补充定时器根据补充定时器启动指令获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至补充定时器,补充定时器根据补充定时器关闭指令停止工作,发送常规定时器启动指令至常规定时器,以使常规定时器根据常规定时器启动指令从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在待推送数据队列中全部待推送数据完成数据推送时,获取定时器清空指令;根据定时器清空指令对常规定时器和补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待推送数据队列,待推送数据队列包括至少一个待推送数据;从待推送数据队列中确定当前待推送数据;通过常规定时器推送当前待推送数据,获取当前待推送数据对应的第一当前推送状态;在第一当前推送状态为网络异常状态时,关闭常规定时器,启动补充定时器,通过补充定时器在预设时间段内推送当前待推送数据,获取当前待推送数据对应的第二当前推送状态;在第二当前推送状态为网络正常状态时,关闭补充定时器,启动常规定时器,从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第一当前推送状态不是网络异常状态时,根据第一当前推送状态确定当前待推送数据是否推送成功;在确定当前待推送数据推送成功时,从待推送数队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送;在确定当前待推送数据推送不成功时,重新进行步骤通过常规定时器推送当前待推送数据,直至当前待推送数据推送成功。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第二当前推送状态为网络异常状态时,保持补充定时器运行,重新通过补充定时器获取下一个预设时间段,在达到下一个预设时间段时,推送当前待推送数据,直至当前待推送数据推送成功。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取至少一个初始待推送数据;获取预设数据处理规则,根据预设数据处理规则对至少一个初始待推送数据进行处理,得到对应的待推送数据;根据至少一个待推送数据组成待推送数据队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待推送数据队列中至少一个待推送数据对应的待推送数据优先级;根据待推送数据优先级从待推送数据队列中确定当前待推送数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至常规定时器,常规定时器根据常规定时器关闭指令停止工作,发送补充定时器启动指令至补充定时器,以使补充定时器根据补充定时器启动指令获取预设时间段,在达到预设时间段时,推送当前待推送数据,获取待推送数据对应的第二当前推送状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至补充定时器,补充定时器根据补充定时器关闭指令停止工作,发送常规定时器启动指令至常规定时器,以使常规定时器根据常规定时器启动指令从待推送数据队列中获取下一个待推送数据,将下一个待推送数据作为当前待推送数据,返回步骤通过常规定时器推送当前待推送数据,直至待推送数据队列中至少一个待推送数据完成数据推送。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在待推送数据队列中全部待推送数据完成数据推送时,获取定时器清空指令;根据定时器清空指令对常规定时器和补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据队列推送方法,所述方法包括以下步骤:
获取待推送数据队列,所述待推送数据队列包括至少一个待推送数据;
从所述待推送数据队列中确定当前待推送数据;
通过常规定时器推送所述当前待推送数据,获取所述当前待推送数据对应的第一当前推送状态;
在所述第一当前推送状态为网络异常状态时,关闭所述常规定时器,启动补充定时器,通过所述补充定时器在预设时间段内推送所述当前待推送数据,获取所述当前待推送数据对应的第二当前推送状态;
在所述第二当前推送状态为网络正常状态时,关闭所述补充定时器,启动所述常规定时器,从所述待推送数据队列中获取下一个待推送数据,将所述下一个待推送数据作为当前待推送数据,返回通过常规定时器推送所述当前待推送数据的步骤,直至所述待推送数据队列中至少一个所述待推送数据完成数据推送。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一当前推送状态不是网络异常状态时,根据所述第一当前推送状态确定所述当前待推送数据是否推送成功;
在确定所述当前待推送数据推送成功时,从所述待推送数据队列中获取下一个待推送数据,将所述下一个待推送数据作为当前待推送数据,返回通过常规定时器推送所述当前待推送数据的步骤,直至所述待推送数据队列中至少一个所述待推送数据完成数据推送;
在确定所述当前待推送数据推送不成功时,重新进行通过常规定时器推送所述当前待推送数据的步骤,直至所述当前待推送数据推送成功。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二当前推送状态为网络异常状态时,保持所述补充定时器运行,重新通过所述补充定时器获取下一个预设时间段,在达到所述下一个预设时间段时,推送所述当前待推送数据,直至所述当前待推送数据推送成功。
4.根据权利要求1所述的方法,其特征在于,所述获取待推送数据队列,所述待推送数据队列包括至少一个待推送数据,包括:
获取至少一个初始待推送数据;
获取预设数据处理规则,根据所述预设数据处理规则对至少一个所述初始待推送数据进行处理,得到对应的待推送数据;
根据至少一个所述待推送数据组成所述待推送数据队列。
5.根据权利要求1所述的方法,其特征在于,所述从所述待推送数据队列中确定当前待推送数据,包括:
获取所述待推送数据队列中至少一个待推送数据对应的待推送数据优先级;
根据所述待推送数据优先级从所述待推送数据队列中确定当前待推送数据。
6.根据权利要求1所述的方法,其特征在于,所述在所述第一当前推送状态为网络异常状态时,关闭所述常规定时器,启动补充定时器,通过所述补充定时器在预设时间段内推送所述当前待推送数据,获取所述当前待推送数据对应的第二当前推送状态,包括:
在所述第一当前推送状态为网络异常状态时,发送常规定时器关闭指令至所述常规定时器,所述常规定时器根据所述常规定时器关闭指令停止工作,发送补充定时器启动指令至所述补充定时器,以使所述补充定时器根据所述补充定时器启动指令获取预设时间段,在达到所述预设时间段时,推送所述当前待推送数据,获取所述待推送数据对应的第二当前推送状态。
7.根据权利要求1所述的方法,其特征在于,所述在所述第二当前推送状态为网络正常状态时,关闭所述补充定时器,启动所述常规定时器,从所述待推送数据队列中获取下一个待推送数据,将所述下一个待推送数据作为当前待推送数据,返回通过常规定时器推送所述当前待推送数据的步骤,直至所述待推送数据队列中至少一个所述待推送数据完成数据推送,包括:
在所述第二当前推送状态为网络正常状态时,发送补充定时器关闭指令至所述补充定时器,所述补充定时器根据所述补充定时器关闭指令停止工作,发送常规定时器启动指令至所述常规定时器,以使所述常规定时器根据所述常规定时器启动指令从所述待推送数据队列中获取下一个待推送数据,将所述下一个待推送数据作为当前待推送数据,返回通过常规定时器推送所述当前待推送数据的步骤,直至所述待推送数据队列中至少一个所述待推送数据完成数据推送;
所述方法还包括:
在所述待推送数据队列中全部所述待推送数据完成数据推送时,获取定时器清空指令;
根据所述定时器清空指令对所述常规定时器和所述补充定时器进行清空操作,得到清空后的常规定时器和补充定时器,所述清空后的常规定时器和补充定时器用于处理下一个待推送数据队列。
8.一种数据队列推送装置,其特征在于,所述装置包括:
待推送数据获取模块,用于获取待推送数据队列,所述待推送数据队列包括至少一个待推送数据;
当前待推送数据确定模块,用于从所述待推送数据队列中确定当前待推送数据;
常规定时器处理模块,用于通过常规定时器推送所述当前待推送数据,获取所述当前待推送数据对应的第一当前推送状态;
补充定时器处理模块,用于在所述第一当前推送状态为网络异常状态时,关闭所述常规定时器,启动补充定时器,通过所述补充定时器在预设时间段内推送所述当前待推送数据,获取所述当前待推送数据对应的第二当前推送状态;
常规定时器循环处理模块,用于在所述第二当前推送状态为网络正常状态时,关闭所述补充定时器,启动所述常规定时器,从所述待推送数据队列中获取下一个待推送数据,将所述下一个待推送数据作为当前待推送数据,返回常规定时器处理模块中通过常规定时器推送所述当前待推送数据,直至所述待推送数据队列中至少一个所述待推送数据完成数据推送。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011097363.3A CN112214336B (zh) | 2020-10-14 | 2020-10-14 | 数据队列推送方法、装置、计算机设备和存储介质 |
CA3134295A CA3134295C (en) | 2020-10-14 | 2021-10-14 | Data queue pushing method and device, computer equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011097363.3A CN112214336B (zh) | 2020-10-14 | 2020-10-14 | 数据队列推送方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214336A CN112214336A (zh) | 2021-01-12 |
CN112214336B true CN112214336B (zh) | 2022-11-22 |
Family
ID=74054141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011097363.3A Active CN112214336B (zh) | 2020-10-14 | 2020-10-14 | 数据队列推送方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112214336B (zh) |
CA (1) | CA3134295C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114374747B (zh) * | 2022-01-11 | 2023-09-15 | 高拓讯达(北京)微电子股份有限公司 | 一种定时器的启动方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130029726A1 (en) * | 2011-07-27 | 2013-01-31 | Qualcomm Incorporated | System and method for prioritizing requests to a sim |
CN107172182A (zh) * | 2017-06-06 | 2017-09-15 | 深圳市金立通信设备有限公司 | 一种消息推送方法、消息推送服务器及终端 |
CN107748695A (zh) * | 2017-10-24 | 2018-03-02 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、存储介质和计算机设备 |
-
2020
- 2020-10-14 CN CN202011097363.3A patent/CN112214336B/zh active Active
-
2021
- 2021-10-14 CA CA3134295A patent/CA3134295C/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130029726A1 (en) * | 2011-07-27 | 2013-01-31 | Qualcomm Incorporated | System and method for prioritizing requests to a sim |
CN107172182A (zh) * | 2017-06-06 | 2017-09-15 | 深圳市金立通信设备有限公司 | 一种消息推送方法、消息推送服务器及终端 |
CN107748695A (zh) * | 2017-10-24 | 2018-03-02 | 平安科技(深圳)有限公司 | 定时任务处理方法、装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CA3134295A1 (en) | 2022-04-14 |
CA3134295C (en) | 2024-01-02 |
CN112214336A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070214355A1 (en) | Leaderless Byzantine consensus | |
CN108491301B (zh) | 电子装置、基于redis的异常预警方法及存储介质 | |
CN111651285A (zh) | 批量业务数据处理方法、装置、计算机设备和存储介质 | |
CN110286998B (zh) | 虚拟机图形用户界面生效、执行过程记录方法和装置 | |
CN110990132B (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
CN104160378A (zh) | 用于复杂的分布式计算操作的容错功能 | |
CN111222821B (zh) | 一种货品补充方法、装置、计算机设备和存储介质 | |
CN110955508B (zh) | 基于分布式架构的异步任务调度方法、装置和计算机设备 | |
CN113672284B (zh) | 一种指令执行方法、系统、电子设备以及存储介质 | |
CN112214336B (zh) | 数据队列推送方法、装置、计算机设备和存储介质 | |
CN113392037A (zh) | 内存回收方法、装置、计算机设备和存储介质 | |
CN111143031A (zh) | 一种虚拟机的容量更改方法及装置 | |
CN111475335A (zh) | 一种数据库快速恢复的方法、系统、终端及存储介质 | |
CN110727509A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112132652B (zh) | 订单信息获取方法、装置、计算机设备和存储介质 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN111400087B (zh) | 一种操作系统的控制方法、终端以及存储介质 | |
CN112559248B (zh) | 预处理服务恢复方法、装置、设备及存储介质 | |
CN114567664A (zh) | 消息处理结果监控方法、装置、计算机设备和存储介质 | |
CN112559290A (zh) | 业务调用监控方法、装置、计算机设备和存储介质 | |
CN113296803A (zh) | 数据处理方法、装置、智能网卡和服务器 | |
CN110879757A (zh) | 客户端异常运行时的重启方法、装置和计算机设备 | |
CN112241156A (zh) | 诊断方法、装置、计算机设备和存储介质 | |
CN113656155B (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 |