CN112261594B - 不定时消息推送方法及装置 - Google Patents
不定时消息推送方法及装置 Download PDFInfo
- Publication number
- CN112261594B CN112261594B CN202011143264.4A CN202011143264A CN112261594B CN 112261594 B CN112261594 B CN 112261594B CN 202011143264 A CN202011143264 A CN 202011143264A CN 112261594 B CN112261594 B CN 112261594B
- Authority
- CN
- China
- Prior art keywords
- message
- sent
- data
- node
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/20—Control channels or signalling for resource management
- H04W72/23—Control channels or signalling for resource management in the downlink direction of a wireless link, i.e. towards a terminal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种不定时消息推送方法及装置,包括获取提醒数据,根据所述提醒数据构造数据结构;初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。本发明自定义任务不同工作项在每天的执行时间,监管端按照设置的执行时间,推送督办消息到用户手机应用;本申请通过结合环形链表、树形等数据结构,利用定时器,缓存、消息队列以及多线程等技术实现不定时向大量用户推送消息。
Description
技术领域
本发明属于通信技术领域,具体涉及一种不定时消息推送方法及装置。
背景技术
监管单位要求市场主体单位在移动应用上完成主体自查任务,监管单位在管理端后台发布周期性任务,在主体单位接收到任务之后,食品安全管理员负责相应的任务分发以及完成,不同的任务由对应的员工完成;不同的检查项在一天不同的时间完成,管理员设置不同任务的执行时间。在设置不同的提醒时间之后,监管端需要按照预设的时间自动推送督办消息,以提醒工作人员完成任务。
相关技术中,是每个主体单位每天可能涉及到几十项检查任务,执行人数不等,执行时间分布通常是早上5点至晚上12点,一个地区的主体单位数量大概是几千至几十万不等。但是定时调度推送消息给用户,存在以下缺点:
一则是只能通过轮询的方式获取待处理的消息,造成资源的浪费;
二则是定时的机制会造成执行时间不精确,大量处理过程滞后,且数十万用户同时接收消息的高并发问题。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种不定时消息推送方法及装置,以解决现有技术中获取待处理消息时,资源浪费以及处理过程之后,用户同时接收消息的高并发的问题。
为实现以上目的,本发明采用如下技术方案:一种不定时消息推送方法,包括:
获取提醒数据,根据所述提醒数据构造数据结构;
初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;
根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。
进一步的,在所述获取提醒数据之前,还包括:
预设提醒数据并保存至数据库。
进一步的,所述相关变量包括:
任务ID、主体单位ID、任务开发日期、任务结束日期、状态标识关系、检查项ID关系、主体单位ID、执行人ID、执行时间关系、每个线程最大处理的数据量、周期间隔、执行任务线程数。
进一步的,所述时间关系包括执行时间;根据所述提醒数据构造数据结构,包括:
抽取时间关系中的执行时间,并过滤所述执行时间中的重复时间后构建环形链表L1;
以环形链表L1中的节点Ni为根节点,顺序号为子节点subNi;
以Ni+顺序号为key,时间关系数据记录以字符串形式转换为元素Ei,每个key下最多存储maxN个元素;
顺序号subNi是从1开始计数,当前节点的子集合NiT元素大于maxN时,生成下一个顺序号作为子节点。
进一步的,所述初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,包括:
将所述定时器设置为根据节点Ni下的子节点数量新建线程,每个所述线程生成消息子过程;
所述消息子过程生成待发送消息形成消息队列。
进一步的,所述智能终端中设有APP,所述APP用于接收待发送消息的内容。
进一步的,当所述执行时间关系发生变化时,更新所述数据结构。
本申请实施例提供一种不定时消息推送装置,包括:
构造模块,用于获取提醒数据,根据所述提醒数据构造数据结构;
订阅模块,用于初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;
推送模块,用于根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。
进一步的,还包括:
预设模块,用于预设提醒数据并保存至数据库。
本申请实施例提供一种控制器,用于执行上述任一实施例提供的不定时消息推送方法。
本发明采用以上技术方案,能够达到的有益效果包括:
本发明提供一种不定时消息推送方法,本申请自定义任务不同工作项在每天的执行时间,监管端按照设置的执行时间,推送督办消息到用户手机应用;本申请通过结合环形链表、树形等数据结构,利用定时器,缓存、消息队列以及多线程等技术实现不定时向大量用户推送消息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明不定时消息推送方法的步骤示意图;
图2为本发明环形链表结构示意图;
图3为本发明树形数据结构示意图;
图4为本发明不定时消息推送装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
下面结合附图介绍本申请实施例中提供的一个具体的不定时消息推送方法。
如图1所示,本申请实施例中提供的不定时消息推送方法包括:
S101,获取提醒数据,根据所述提醒数据构造数据结构;
S102,初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;
S103,根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。
优选的,在所述获取提醒数据之前,还包括:
预设提醒数据并保存至数据库。
不定时消息推送方法的工作原理为:本申请通过服务器实现,预先设置提醒数据,将设置好的提醒数据保存至数据库中;服务器首先初始化相关变量,通过数据库获取到提醒数据,根据提醒数据构造数据结构,根据相关变量生成待发送消息并推送至消息队列,根据消息队列和数据结构定制待发送消息,根据业务规范的需要定制待发送消息的内容,发送至智能终端。
本申请解决了定时调度用户个性化的精准时刻推送要求;同时解决了数十万用户同时接收消息的高并发问题。
一些实施例中,所述相关变量包括:每个线程最大处理的数据量、周期间隔、执行任务线程数;
所述提醒数据包括:任务ID、主体单位ID、任务开发日期、任务结束日期、状态标识关系、检查项ID关系、主体单位ID、执行人ID、执行时间关系。
一些实施例中,如图2所示,所述时间关系包括执行时间;根据所述提醒数据构造数据结构,包括:
抽取时间关系中的执行时间,并过滤所述执行时间中的重复时间后构建环形链表L1;
以环形链表L1中的节点Ni为根节点,顺序号为子节点subNi;
以Ni+顺序号为key,时间关系数据记录以字符串形式转换为元素Ei,每个key下最多存储maxN个元素;
顺序号subNi是从1开始计数,当前节点的子集合NiT元素大于maxN时,生成下一个顺序号作为子节点。
优选的,所述初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,包括:
将所述定时器设置为根据节点Ni下的子节点数量新建线程,每个所述线程生成消息子过程;
所述消息子过程生成待发送消息形成消息队列。
具体的,本申请中先根据提醒数据构造环形链表L1,在根据环形链表L1构造如图3所示的树形数据结构,环形链表L1中包括多个节点,Ni、Nj、Nn、N0、N1、N2;定时器根据环形链表L1中的节点Ni进行发送消息,每个节点还含有多个子节点,subN1、subN2、subNi、subN;根据子节点的数量新建线程,每个线程可以生成消息子过程,消息子过程生成待发送消息,这些待发送消息推送到消息队列。也就是说在发送消息的时候定时器以固定的时间间隔按照节点Ni的顺序进行发送,在选择节点Ni后对节点Ni的多个子节点按顺序发送消息,而不是按照时间进行发送,实现不定时消息发送。
一些实施例中,所述智能终端中设有APP,所述APP用于接收待发送消息的内容。
本申请首先将主体单位的提醒设置持久化到数据库;服务端主程序初始化相关变量,从数据库中获取所有待处理的相关数据,构造相关的数据结构,开启程序定时器,订阅消息队列,定时调度消息子程序,时间误差范围可灵活控制,推送任务再根据业务规范,定制个性化的消息内容,将消息通过消息平台推送到用户app中。
优选的,当所述执行时间关系发生变化时,更新所述数据结构。
如图4所示,本申请实施例提供一种不定时消息推送装置,包括:
构造模块401,用于获取提醒数据,根据所述提醒数据构造数据结构;
订阅模块402,用于初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;
推送模块403,用于根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。
本申请提供的不定时消息推送装置的工作原理为,构造模块401获取提醒数据,根据所述提醒数据构造数据结构;订阅模块402初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;推送模块403根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。
本申请实施例提供一种计算机设备,包括处理器,以及与处理器连接的存储器;
存储器用于存储计算机程序,计算机程序用于执行上述任一实施例提供的不定时消息推送方法;
处理器用于调用并执行存储器中的计算机程序。
综上所述,本发明提供一种不定时消息推送方法及装置,包括获取提醒数据,根据所述提醒数据构造数据结构;初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端。本发明自定义任务不同工作项在每天的执行时间,监管端按照设置的执行时间,推送督办消息到用户手机应用;本申请通过结合环形链表、树形等数据结构,利用定时器,缓存、消息队列以及多线程等技术实现不定时向大量用户推送消息。
可以理解的是,上述提供的方法实施例与上述的装置实施例对应,相应的具体内容可以相互参考,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (6)
1.一种不定时消息推送方法,其特征在于,包括:
获取提醒数据,根据所述提醒数据构造数据结构;
初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;
根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端:
所述相关变量包括:每个线程最大处理的数据量、周期间隔、执行任务线程数;
所述提醒数据包括:任务ID、主体单位ID、任务开发日期、任务结束日期、状态标识关系、检查项ID关系、主体单位ID、执行人ID、执行时间关系;
所述时间关系包括执行时间;根据所述提醒数据构造数据结构,包括:
抽取时间关系中的执行时间,并过滤所述执行时间中的重复时间后构建环形链表L1;根据所述环形链表L1构造树形数据结构;
以环形链表L1中的节点Ni为根节点,顺序号为子节点subNi;
以Ni+顺序号为key,时间关系数据记录以字符串形式转换为元素Ei,每个key下最多存储maxN个元素;
顺序号subNi是从1开始计数,当前节点的子集合NiT元素大于maxN时,生成下一个顺序号作为子节点;
所述初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,包括:
将定时器设置为根据节点Ni下的子节点数量新建线程,每个所述线程生成消息子过程;
所述消息子过程生成待发送消息形成消息队列;
其中,在发送消息的时候定时器以固定的时间间隔按照节点Ni的顺序进行发送,在选择节点Ni后对节点Ni的多个子节点按顺序发送消息。
2.根据权利要求1所述的方法,其特征在于,在所述获取提醒数据之前,还包括:
预设提醒数据并保存至数据库。
3.根据权利要求1所述的方法,其特征在于,
所述智能终端中设有APP,所述APP用于接收待发送消息的内容。
4.根据权利要求1所述的方法,其特征在于,
当所述执行时间关系发生变化时,更新所述数据结构。
5.一种不定时消息推送装置,其特征在于,包括:
构造模块,用于获取提醒数据,根据所述提醒数据构造数据结构;
订阅模块,用于初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,用于以固定时间间隔调度待发送消息;
推送模块,用于根据所述数据结构以及消息队列定制待发送消息,根据业务规范定制待发送消息的内容并推送至智能终端;
所述相关变量包括:每个线程最大处理的数据量、周期间隔、执行任务线程数;
所述提醒数据包括:任务ID、主体单位ID、任务开发日期、任务结束日期、状态标识关系、检查项ID关系、主体单位ID、执行人ID、执行时间关系;
所述时间关系包括执行时间;根据所述提醒数据构造数据结构,包括:
抽取时间关系中的执行时间,并过滤所述执行时间中的重复时间后构建环形链表L1;根据所述环形链表L1构造树形数据结构;
以环形链表L1中的节点Ni为根节点,顺序号为子节点subNi;
以Ni+顺序号为key,时间关系数据记录以字符串形式转换为元素Ei,每个key下最多存储maxN个元素;
顺序号subNi是从1开始计数,当前节点的子集合NiT元素大于maxN时,生成下一个顺序号作为子节点;
所述初始化相关变量,根据所述相关变量获取待发送消息并推送至消息队列,包括:
将定时器设置为根据节点Ni下的子节点数量新建线程,每个所述线程生成消息子过程;
所述消息子过程生成待发送消息形成消息队列;
其中,在发送消息的时候定时器以固定的时间间隔按照节点Ni的顺序进行发送,在选择节点Ni后对节点Ni的多个子节点按顺序发送消息。
6.根据权利要求5所述的装置,其特征在于,还包括:
预设模块,用于预设提醒数据并保存至数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011143264.4A CN112261594B (zh) | 2020-10-23 | 2020-10-23 | 不定时消息推送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011143264.4A CN112261594B (zh) | 2020-10-23 | 2020-10-23 | 不定时消息推送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112261594A CN112261594A (zh) | 2021-01-22 |
CN112261594B true CN112261594B (zh) | 2022-02-11 |
Family
ID=74264847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011143264.4A Active CN112261594B (zh) | 2020-10-23 | 2020-10-23 | 不定时消息推送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112261594B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172182A (zh) * | 2017-06-06 | 2017-09-15 | 深圳市金立通信设备有限公司 | 一种消息推送方法、消息推送服务器及终端 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258018B (zh) * | 2013-04-27 | 2016-08-10 | 北京金和软件股份有限公司 | 一种精确监控目录文件夹中文件变化的文件同步方法 |
CN110245008B (zh) * | 2018-03-09 | 2023-02-03 | 阿里巴巴集团控股有限公司 | 定时任务处理方法、系统和设备 |
CN108769244B (zh) * | 2018-06-14 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种存储任务信息获取方法及相关装置 |
CN109308217A (zh) * | 2018-07-17 | 2019-02-05 | 威富通科技有限公司 | 一种时效任务的数据存储方法及装置 |
CN109634800A (zh) * | 2018-10-19 | 2019-04-16 | 深圳平安财富宝投资咨询有限公司 | 数据处理方法、系统、终端及可读存储介质 |
CN111382985B (zh) * | 2018-12-27 | 2023-12-29 | 中国石油天然气股份有限公司 | 待办消息集成推送系统和工作方法 |
CN110795445B (zh) * | 2019-10-29 | 2022-08-05 | 北京字节跳动网络技术有限公司 | 并发任务的处理方法、装置、服务器设备及介质 |
-
2020
- 2020-10-23 CN CN202011143264.4A patent/CN112261594B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172182A (zh) * | 2017-06-06 | 2017-09-15 | 深圳市金立通信设备有限公司 | 一种消息推送方法、消息推送服务器及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN112261594A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106126332A (zh) | 分布式定时任务调度系统及方法 | |
CN108563502B (zh) | 一种任务调度方法和装置 | |
CN110069334A (zh) | 一种基于包管理的分布式数据作业调度的方法和系统 | |
CN102467532A (zh) | 一种任务处理方法以及任务处理装置 | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN111984390A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN109214741B (zh) | 一种监控指标的预警方法和预警系统 | |
CN110569090A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN104915378A (zh) | 一种适用于大数据的统计任务快速生成系统及方法 | |
CN105630588A (zh) | 一种分布式作业调度方法和系统 | |
CN102663543A (zh) | 一种用于企业数据统一平台的调度系统 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN106385328A (zh) | 一种基于嵌入式系统来管理企业核心设备的监控方法 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
CN107066339A (zh) | 分布式作业管理器及分布式作业管理方法 | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108763482B (zh) | 用于数据分析流程调度的方法、装置和服务器集群 | |
CN110764747A (zh) | 基于Airflow的数据计算调度方法 | |
CN111782901A (zh) | 数据采集方法以及装置 | |
CN112261594B (zh) | 不定时消息推送方法及装置 | |
CN114924858A (zh) | 任务调度方法及装置、存储介质及电子设备 | |
CN113127225A (zh) | 一种数据处理任务的调度方法、装置和系统 | |
CN110780981B (zh) | 一种hadoop大数据平台的任务调度管理系统及方法 | |
CN116149829B (zh) | 任务管理方法、装置、设备及存储介质 | |
CN1327656C (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 |