CN112256451A - 定时业务消息生成方法、装置、电子设备及存储介质 - Google Patents
定时业务消息生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112256451A CN112256451A CN202011118640.4A CN202011118640A CN112256451A CN 112256451 A CN112256451 A CN 112256451A CN 202011118640 A CN202011118640 A CN 202011118640A CN 112256451 A CN112256451 A CN 112256451A
- Authority
- CN
- China
- Prior art keywords
- message processing
- message
- target
- nodes
- service
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 443
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开关于一种定时业务消息生成方法、装置、电子设备及存储介质,该方法包括:响应于定时任务触发指令读取包括定时任务配置的配置文件,该定时任务配置包括消息处理逻辑标识和关联业务参数;在定时任务配置中存在与当前时间节点相匹配的目标定时任务配置时,根据目标定时任务配置生成中间队列消息并存储至消息队列;由多个消息处理节点中的目标消息处理节点从消息队列中获取中间队列消息,每个消息处理节点包括预置的多个消息处理逻辑;从多个消息处理逻辑中确定与消息处理逻辑标识相匹配的目标消息处理逻辑;调用该目标消息处理逻辑,由该目标消息处理逻辑根据关联业务参数生成待推送的定时业务消息。本公开提高了定时推送任务的灵活性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种定时业务消息生成方法、装置、电子设备及存储介质。
背景技术
随着移动终端的广泛使用,适用于移动端的应用也越来越多,一些应用会在某些特定的时间向多个移动终端用户推送业务消息,例如,直播应用会向用户推送一些大主播开播的消息,从而用户能够及时进入大主播的直播间观看其直播内容。
相关技术中,服务器通过定时推送任务来实现向多个移动终端用户推送业务消息,该定时推送任务包括耦合在一起的定时任务部分和消息推送部分,其中定时任务部分按照一定时间间隔触发定时任务执行,即每到一个时间节点就会触发一次定时任务执行,在定时任务执行时消息推送部分按照固定的消息处理逻辑生成业务消息并推送。然而,实际应用中有时并不希望在每个时间节点都执行定时任务,显然相关技术无法满足该需求,灵活性差;另外,由于相关技术中定时任务部分和消息推送部分耦合在一起,不仅限制了消息推送部分的处理速度,且无法根据实际需要来决定定时任务执行时所采取的具体消息处理逻辑,进一步降低了定时推送任务的灵活性。
发明内容
本公开提供一种定时业务消息生成方法、装置、电子设备及存储介质,以至少解决相关技术中定时推送任务灵活性差的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种定时业务消息生成方法,包括:
响应于定时任务触发指令,读取配置文件;所述配置文件包括至少一个定时任务配置,所述定时任务配置包括消息处理逻辑标识和关联业务参数;
在所述至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置时,根据所述目标定时任务配置生成中间队列消息,将所述中间队列消息存储至消息队列;
确定多个消息处理节点中的目标消息处理节点,由所述目标消息处理节点从所述消息队列中获取所述中间队列消息,每个所述消息处理节点包括预置的多个消息处理逻辑;
从所述多个消息处理逻辑中确定目标消息处理逻辑,所述目标消息处理逻辑与所述中间队列消息中的所述消息处理逻辑标识相匹配;
调用所述目标消息处理逻辑,由所述目标消息处理逻辑根据所述关联业务参数生成待推送的定时业务消息。
在一示例性的实施方式中,所述方法还包括:
响应于针对定时任务的配置操作,获取配置参数;所述配置参数包括执行时间、消息处理逻辑标识和关联业务参数;
以所述执行时间为键数据,与所述执行时间相对应的消息处理逻辑标识和关联业务参数为值数据,生成所述配置文件中的所述定时任务配置。
在一示例性的实施方式中,在所述至少一个定时任务配置中存在与当前时间相匹配的目标定时任务配置时,根据所述目标定时任务配置生成中间队列消息之前,所述方法还包括:
获取所述配置文件中的至少一个键数据;
判断所述至少一个键数据中是否存在与当前时间节点相匹配的目标键数据;
在判断的结果为是时,获取所述目标键数据所对应的目标值数据;
将所述目标值数据所对应的定时任务配置作为目标定时任务配置,确定所述至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置。
在一示例性的实施方式中,所述方法还包括:
获取新增消息处理逻辑;
从所述多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点,所述多个消息处理节点中除所述待升级消息处理节点之外的消息处理节点作为剩余消息处理节点;
根据所述新增消息处理逻辑对所述第一数量个待升级消息处理节点进行升级;
在所述第一数量个待升级消息处理节点的升级状态为升级完成时,将所述剩余消息处理节点作为所述多个消息处理节点,执行所述从所述多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点进行升级的步骤,直至不存在所述剩余消息处理节点。
在一示例性的实施方式中,所述确定多个消息处理节点中的目标消息处理节点包括:
确定已完成升级的升级消息处理节点;
将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点;
从所述候选消息处理节点中选取所述目标消息处理节点。
在一示例性的实施方式中,在将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点之前,所述方法还包括:
判断所述中间队列消息中的消息处理逻辑标识是否为新增消息处理逻辑标识;
在判断的结果为否时,执行所述将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点的步骤。
在判断的结果为是时,将所述升级消息处理节点作为所述候选消息处理节点。
在一示例性的实施方式中,所述方法还包括:
监测所述消息队列中所包含的中间队列消息的消息数量;
在所述消息数量超过第一预设阈值时,确定所述消息数量与所述多个消息处理节点的节点数量之间的第一数量差值;
根据所述第一数量差值确定待增加的消息处理节点的待增节点数量;
根据所述待增节点数量增加所述多个消息处理节点的节点数量。
在一示例性的实施方式中,所述方法还包括:
在所述消息数量小于第二预设阈值时,确定所述消息数量与所述多个消息处理节点的节点数量之间的第二数量差值;
根据所述第二数量差值确定待减少的消息处理节点的待减节点数量;
根据所述待减节点数量减少所述多个消息处理节点的节点数量。
在一示例性的实施方式中,所述多个消息处理逻辑对应至少一个业务消息模板;
所述调用所述目标消息处理逻辑,由所述目标消息处理逻辑根据所述关联业务参数生成待推送的定时业务消息包括:
调用所述目标消息处理逻辑,根据所述关联业务参数向业务服务器发送目标业务信息的获取请求,以使所述业务服务器根据所述关联业务参数确定所述目标业务信息;
接收所述业务服务器返回的所述目标业务信息;
根据所述目标业务信息确定所述至少一个业务消息模板中的目标业务消息模板;
根据所述目标业务消息模板,生成所述待推送的定时业务消息。
在一示例性的实施方式中,所述关联业务参数包括业务标识和目标用户标识;
所述调用所述目标消息处理逻辑,根据所述关联业务参数向业务服务器发送目标业务信息的获取请求包括:
调用所述目标消息处理逻辑,生成目标业务关系的获取请求,所述目标业务关系为所述业务标识所对应的业务对象与所述目标用户标识所对应的目标用户之间的关系;
向业务服务器发送目标业务关系的获取请求;
所述根据所述目标业务信息确定所述至少一个业务消息模板中的目标业务消息模板包括:
确定所述目标业务关系对应的目标关系类型;
根据所述目标关系类型确定第一业务消息模板中与所述目标用户相匹配的目标业务消息模板,所述至少一个业务消息模板包括对应不同关系类型的第一业务消息模板。
根据本公开实施例的第二方面,提供一种定时业务消息生成装置,包括:
配置读取单元,被配置为执行响应于定时任务触发指令,读取配置文件;所述配置文件包括至少一个定时任务配置,所述定时任务配置包括消息处理逻辑标识和关联业务参数;
队列消息存储单元,被配置为执行在所述至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置时,根据所述目标定时任务配置生成中间队列消息,将所述中间队列消息存储至消息队列;
处理节点确定单元,被配置为执行确定多个消息处理节点中的目标消息处理节点,由所述目标消息处理节点从所述消息队列中获取所述中间队列消息,每个所述消息处理节点包括预置的多个消息处理逻辑;
消息处理逻辑确定单元,被配置为执行从所述多个消息处理逻辑中确定目标消息处理逻辑,所述目标消息处理逻辑与所述中间队列消息中的所述消息处理逻辑标识相匹配;
定时业务消息生成单元,被配置为执行调用所述目标消息处理逻辑,由所述目标消息处理逻辑根据所述关联业务参数生成待推送的定时业务消息。
在一示例性的实施方式中,所述装置还包括:
配置参数获取单元,被配置为执行响应于针对定时任务的配置操作,获取配置参数;所述配置参数包括执行时间、消息处理逻辑标识和关联业务参数;
任务配置生成单元,被配置为执行以所述执行时间为键数据,与所述执行时间相对应的消息处理逻辑标识和关联业务参数为值数据,生成所述配置文件中的所述定时任务配置。
在一示例性的实施方式中,所述装置还包括:
键数据获取单元,被配置为执行获取所述配置文件中的至少一个键数据;
第一判断单元,被配置为执行判断所述至少一个键数据中是否存在与当前时间节点相匹配的目标键数据;
值数据获取单元,被配置为执行在所述第一判断单元判断的结果为是时,获取所述目标键数据所对应的目标值数据;
目标配置确定单元,被配置为执行将所述目标值数据所对应的定时任务配置作为目标定时任务配置,确定所述至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置。
在一示例性的实施方式中,所述装置还包括:
第一获取单元,被配置为执行获取新增消息处理逻辑;
第一选取单元,被配置为执行从所述多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点,所述多个消息处理节点中除所述待升级消息处理节点之外的消息处理节点作为剩余消息处理节点;
节点升级单元,被配置为执行根据所述新增消息处理逻辑对所述第一数量个待升级消息处理节点进行升级;在所述第一数量个待升级消息处理节点的升级状态为升级完成时,将所述剩余消息处理节点作为所述多个消息处理节点,执行所述从所述多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点进行升级的步骤,直至不存在所述剩余消息处理节点。
在一示例性的实施方式中,所述处理节点确定单元包括:
第一确定单元,被配置为执行确定已完成升级的升级消息处理节点;
第二确定单元,被配置为执行将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点;
第二选取单元,被配置为执行从所述候选消息处理节点中选取所述目标消息处理节点。
在一示例性的实施方式中,所述处理节点确定单元还包括:
第二判断单元,被配置为执行判断所述中间队列消息中的消息处理逻辑标识是否为新增消息处理逻辑标识;在判断的结果为否时,执行所述将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点的步骤。
第三确定单元,被配置为执行在所述第二判断单元判断的结果为是时,将所述升级消息处理节点作为所述候选消息处理节点。
在一示例性的实施方式中,所述装置还包括:
监测单元,被配置为执行监测所述消息队列中所包含的中间队列消息的消息数量;
第四确定单元,被配置为执行在所述消息数量超过第一预设阈值时,确定所述消息数量与所述多个消息处理节点的节点数量之间的第一数量差值;
第五确定单元,被配置为执行根据所述第一数量差值确定待增加的消息处理节点的待增节点数量;
节点扩容单元,被配置为执行根据所述待增节点数量增加所述多个消息处理节点的节点数量。
在一示例性的实施方式中,所述装置还包括:
第六确定单元,被配置为执行在所述消息数量小于第二预设阈值时,确定所述消息数量与所述多个消息处理节点的节点数量之间的第二数量差值;
第七确定单元,被配置为执行根据所述第二数量差值确定待减少的消息处理节点的待减节点数量;
节点缩容单元,被配置为执行根据所述待减节点数量减少所述多个消息处理节点的节点数量。
在一示例性的实施方式中,所述多个消息处理逻辑对应至少一个业务消息模板;
所述定时业务消息生成单元包括:
第二获取单元,被配置为执行调用所述目标消息处理逻辑,根据所述关联业务参数向业务服务器发送目标业务信息的获取请求,以使所述业务服务器根据所述关联业务参数确定所述目标业务信息;
接收单元,被配置为执行接收所述业务服务器返回的所述目标业务信息;
第八确定单元,被配置为执行根据所述目标业务信息确定所述至少一个业务消息模板中的目标业务消息模板;
生成子单元,被配置为执行根据所述目标业务消息模板,生成所述待推送的定时业务消息。
在一示例性的实施方式中,所述关联业务参数包括业务标识和目标用户标识;
所述第二获取单元包括:
请求生成单元,被配置为执行调用所述目标消息处理逻辑,生成目标业务关系的获取请求,所述目标业务关系为所述业务标识所对应的业务对象与所述目标用户标识所对应的目标用户之间的关系;
发送单元,被配置为执行向业务服务器发送目标业务关系的获取请求;
所述第八确定单元包括:
第九确定单元,被配置为执行确定所述目标业务关系对应的目标关系类型;
第十确定单元,被配置为执行根据所述目标关系类型确定第一业务消息模板中与所述目标用户相匹配的目标业务消息模板,所述至少一个业务消息模板包括对应不同关系类型的第一业务消息模板。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施方式所述的定时业务消息生成方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施方式所述的定时业务消息生成方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述任一种实施方式中提供的定时业务消息生成方法;
本公开的实施例提供的技术方案至少带来以下有益效果:
通过响应于定时任务触发指令读取包括至少一个定时任务配置的配置文件,该定时任务配置包括消息处理逻辑标识和关联业务参数,在存在与当前时间节点相匹配的目标定时任务配置时,根据该目标定时配置任务生成中间队列消息,将该中间队列消息存储至目标消息队列,并确定多个消息处理节点中的目标消息处理节点,由目标消息处理节点从目标消息队列中获取中间队列消息,由于每个消息处理节点包括预置的多个消息处理逻辑,从而可以从多个消息处理逻辑中确定与所获取中间队列消息中的消息处理逻辑标识相匹配的目标消息处理逻辑,调用该目标消息处理逻辑,由该目标消息处理逻辑根据关联业务参数生成待推送的定时业务消息,进而将定时任务部分和消息推送部分相分离,在定时任务部分根据配置文件中实际的定时任务配置情况来决定各时间节点的定时任务是否执行,并可以根据实际需要决定每次定时任务执行时所采取的具体消息处理逻辑,实现了对消息处理逻辑的定制,在提高消息推送部分处理速度的同时提高了定时推送任务的灵活性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种定时业务消息生成方法的应用环境图;
图2是根据一示例性实施例示出的一种定时业务消息生成方法的流程图;
图3是根据一示例性实施例示出的灰度升级多个消息处理节点的流程图;
图4a是根据一示例性实施例示出的另一种定时业务消息生成方法的流程图;
图4b是根据一示例性实施例示出的另一种定时业务消息生成方法的流程图;
图5是根据一示例性实施例示出的调用目标消息处理逻辑,由该目标消息处理逻辑根据关联业务参数生成待推送的定时业务消息的流程图;
图6是根据一示例性实施例示出的对多个消息处理节点进行扩缩容的流程图;
图7是根据一示例性实施例示出的一种定时业务消息生成装置的框图;
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
请参阅图1,其所示为根据一示例性实施例示出的一种定时业务消息生成方法的应用环境图,该应用环境可以包括服务器110和多个终端120,该服务器110和多个终端120之间可以通过有线网络或者无线网络连接。
多个终端120可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端120中可以安装有提供相应业务功能的客户端软件如应用程序(Application,简称为App),该业务功能可以但不限于包括直播功能、即时通讯功能,也即该应用程序可以但不限于包括直播App、即时通讯App。终端120的用户可以通过预先注册的用户信息登录应用程序,该用户信息可以包括账号和密码。
服务器110可以是为终端120中的应用程序提供后台服务的服务器,也可以是与应用程序的后台服务器连接通信的其它服务器,可以是一台服务器,也可以是由多台服务器组成的服务器集群。服务器110中存储有配置文件,该配置文件包括预先配置的至少一个定时任务配置,该定时任务配置可以包括消息处理逻辑标识和关联业务参数,服务器110提供有定时推送任务服务,通过该服务可以向多个终端120推送定时业务消息。
具体的,如图1所示,服务器110可以包括定时任务模块、消息队列和消息消费模块,其中,定时任务模块可以按照一定时间间隔产生定时任务触发指令以触发定时任务,并在定时任务被触发时读取上述的配置文件,查找该配置文件的至少一个定时任务配置中是否存在与当前时间节点相匹配的目标定时任务配置,在查找到存在与当前时间节点相匹配的目标定时任务配置时,根据该目标定时任务配置生成中间队列消息,并将该中间队列消息存储至消息队列中;消息消费模块包括多个消息处理节点,如图1中的consumer1,consumer2至consumerN,每个消息处理节点包括预置的多个消息处理逻辑,消息消费模块在对消息队列中的中间队列消息进行消费时可以先确定多个消息处理节点中的目标消息处理节点,由该目标消息处理节点从消息队列中获取中间队列消息,并从多个消息处理逻辑中确定与所获取中间队列消息中的消息处理逻辑标识相匹配的目标消息处理逻辑,进而调用该目标消息处理逻辑,由该目标消息处理逻辑根据关联业务参数生成待推送的定时业务消息,当然,在生成待推送的定时业务消息后可以将其推送给相对应的终端120用户。
本公开的实施例将定时业务部分和消息推送部分相分离,在定时任务部分根据配置文件中实际的定时任务配置情况来决定各时间节点的定时任务是否执行,并可以根据实际需要决定每次定时任务执行时所采取的具体消息处理逻辑,实现了对消息处理逻辑的定制,在提高定时业务消息处理速度的同时提高了定时推送任务的灵活性。
图2是根据一示例性实施例示出的一种定时业务消息生成方法的流程图,如图2所示,以定时业务消息生成方法应用于图1所示的服务器110中进行说明,包括以下步骤。
在步骤S210中,响应于定时任务触发指令,读取配置文件。
其中,配置文件是一个可随时修改的外部配置文件,包括至少一个定时任务配置,每个定时任务配置包括消息处理逻辑标识和关联业务参数,当然还包括与该定时任务配置对应的执行时间。其中,关联业务参数是指与消息处理逻辑标识所对应的消息处理逻辑相关联的业务参数,也即该关联业务参数可以作为该消息处理逻辑的输入参数,例如,关联业务参数可以表征定时业务消息所推送的目标用户,该目标用户可以是一个,也可以是多个,具体的实施中,可以目标用户所属的类别或者特征标签作为关联业务参数。
消息处理逻辑标识用于唯一标识一个消息处理逻辑,该消息处理逻辑是指定时业务消息的具体生成过程或者说具体的实现方法。
具体的,服务器配置有一个按照预设时间间隔执行的定时任务,在每个时间节点都会产生一个定时任务触发指令,时间节点即为定时任务触发指令产生时的系统时间,相邻两个时间节点之间的时间差为该预设时间间隔,服务器可以响应于该触发指令读取上述配置文件。其中,预设时间间隔的时间粒度可以是秒级、分钟级或小时级,其具体时间粒度可以根据配置文件中执行时间的时间粒度来确定,一般可以等于或者小于执行时间的时间粒度。例如,若配置文件中执行时间的时间粒度为小时级,则可以将预设时间间隔的时间粒度设置为小时级,也即每小时产生一次定时任务触发指令;若配置文件中执行时间的时间粒度为分钟级,则可以将预设时间间隔的时间粒度设置为分钟级,也即每分钟产生一次定时任务触发指令;若配置文件中的执行时间的时间粒度即包括小时级也包括分钟级,则可以将配置文件中执行时间的最小时间粒度作为预设时间间隔的时间粒度,也即此处可以将预设时间间隔的时间粒度设置为分钟级。
应当理解的是,实际应用中可以根据需要向配置文件中新增一个或多个定时任务配置,也可以从配置文件中删除一个或者多个定时任务配置。
本公开的实施例中,消息处理节点包括的消息处理逻辑可以逻辑升级,逻辑升级后的消息处理逻辑可能会需要比升级之前更多的业务参数作为输入,为了实现消息处理逻辑的快速逻辑升级并进一步提高定时推送任务的灵活性,配置文件可以key-value键值对的形式存储各定时任务配置,其中key(键数据)可以为执行时间,value(值数据)可以为执行时间所对应的消息处理逻辑标识和关联业务参数。具体的实施中,配置文件中每个定时任务配置的存储形式可以为map<string,string>,其中,map是java的一种数据结构,代表一个key-value键值接口,<string,string>表示key和value都是string类型,采用这种存储形式,当某个消息处理逻辑升级后需要更多的业务参数作为输入时,可以对配置文件中该消息处理逻辑对应的消息处理逻辑标识的value直接扩充。
鉴于此,在一个示例性的实施方式中,该方法还可以包括对配置文件中定时任务配置的配置步骤,该步骤可以包括以下:
(1)响应于针对定时任务的配置操作,获取配置参数,该配置参数可以包括执行时间、消息处理逻辑标识和关联业务参数。
具体的,服务器可以提供针对定时任务的配置界面,该配置界面中包括配置参数的输入接口,通过该输入接口可以获取到输入的配置参数。
(2)以上述执行时间为键数据,与该执行时间相对应的消息处理逻辑标识和关联业务参数为值数据,生成配置文件中的定时任务配置。
具体的,服务器在获取到配置参数之后,可以将配置参数中的执行时间转换为键数据key,并将与该执行时间对应的消息处理逻辑标识和关联业务参数转换为值数据value,从而在配置文件中以key-value对的形式存储该定时任务配置。例如,执行时间为2020年8月4日12时,消息处理逻辑标识为1,关联业务参数为所有用户,则配置文件中相应的定时任务配置可以为:{“2020080412”:{“templateId”:1,“user”:“all”}},其中,“2020080412”为键数据key,{“templateId”:1,“user”:“all”}为值数据value。
在步骤S220中,判断配置文件的至少一个定时任务配置中是否存在与当前时间节点相匹配的目标定时任务配置。
其中,目标定时任务配置对应的执行时间与当前时间节点对应的系统时间相一致。
本公开的实施例中,定时任务触发指令并不一定会引起任务的执行,还需要根据配置文件中实际的定时任务配置来决定当前是否真的需要执行任务,也即需要判断配置文件的至少一个定时任务配置中是否存在与当前时间节点相匹配的目标定时任务配置,若判断的结果为存在与当前时间节点相匹配的目标定时任务配置,则可以执行步骤S230;若判断的结果为不存在与当前时间节点相匹配的目标定时任务配置,则表明在当前时间节点不希望执行定时任务,不进行任务的执行,结束当前时间节点的定时任务执行。
在一个示例性的实施方式中,对于以key-value键值对形式存储各定时任务配置的配置文件,步骤S220在执行时可以包括以下步骤:
(1)获取配置文件中的至少一个键数据。
(2)判断上述至少一个键数据中是否存在与当前时间节点相匹配的目标键数据,若存在,则执行步骤(3)至(4);若不存在,则结束当前时间节点的定时任务。
(3)获取目标键数据所对应的目标值数据。
(4)将目标值数据所对应的定时任务配置作为目标定时任务配置,确定至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置。
举例而言,若当前时间节点对应的系统时间为2020年8月4日13时,配置文件中只包括一个定时任务配置为{“2020080412”:{“templateId”:1,“user”:“all”}},则获取配置文件中的所有键数据key得到“2020080412”,将该键数据key转换为系统时间是2020年8月4日12时,将当前时间节点对应的系统时间与该键数据key转换后的系统时间相比对,二者不一致,则表明配置文件中不存在与当前时间节点相匹配的目标键数据,结束当前时间节点的定时任务。若当前时间节点对应的系统时间为2020年8月4日12时,则可以在配置文件中找到与当前时间节点相匹配目标键数据“2020080412”,该目标键数据“2020080412”对应的目标值数据为{“templateId”:1,“user”:“all”},可以将该目标值数据{“templateId”:1,“user”:“all”}对应的定时任务配置作为目标定时任务配置,从而可以获取到消息处理逻辑标识为1,关联业务参数为所有用户。
在步骤S230中,根据上述目标定时任务配置生成中间队列消息,将该中间队列消息存储至消息队列。
其中,消息队列可以基于Kafka等分布式发布订阅消息系统来实现。中间队列消息中包括目标定时任务配置所对应的消息处理逻辑标识和关联业务参数。
在步骤240中,确定多个消息处理节点中的目标消息处理节点,由该目标消息处理节点从消息队列中获取中间队列消息。
本公开的实施例中,一个消息处理节点可以实现为一个进程,多个消息处理节点共同处理上述消息队列中的中间队列消息,每个消息处理节点包括预置的多个消息处理逻辑。其中,目标消息处理节点可以是从多个消息处理节点中随机选取的消息处理节点。
实际应用中,如果想要上述多个消息处理节点支持新增的消息处理逻辑时,需要对该多个消息处理节点进行节点升级,本公开的实施例中可以对各个消息处理节点所包括的消息处理逻辑进行升级操作,而处于节点升级中的消息处理节点是无法处理中间队列消息的,从而会对定时任务的执行产生不利影响。
为了避免上述节点升级操作对定时任务执行的影响,在一个示例性的实施方式中,可以采取灰度升级多个消息处理节点,也即按组对多个消息处理节点进行升级,每次升级只升级一个组的消息处理节点,在该组的消息处理节点升级完成后再去升级下一个组的消息处理节点,其中,每个组所包含的待升级的消息处理节点的数量可以根据实际中间队列消息的数量以及多个消息处理节点的数量来确定,例如,每个组可以只包括一个消息处理节点,那么在灰度升级消息处理节点时,先升级完一个消息处理节点再去升级下一个消息处理节点,这样可以保证定时任务的执行不受影响,平滑上线新增的消息处理逻辑。具体的实施中,灰度升级多个消息处理节点可以包括图3中的以下步骤:
在步骤S310中,获取新增消息处理逻辑。
在步骤S320中,从多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点,上述多个消息处理节点中除待升级消息处理节点之外的消息处理节点作为剩余消息处理节点。
其中,第一数量可以根据实际需要进行设定,例如可以为1。
在步骤S330中,根据上述新增消息处理逻辑对第一数量个待升级消息处理节点进行升级。
也即将该新增消息处理逻辑分别封装到该第一数量个待升级消息处理节点中,从而使得该第一数量个升级后的消息处理节点能够支持该消息处理逻辑。
在步骤S340中,在上述第一数量个待升级消息处理节点的升级状态为升级完成时,将上述剩余消息处理节点作为步骤S320中的多个消息处理节点,并执行从该多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点进行升级的步骤,直至不存在剩余消息处理节点。
以图1中消息消费模块包括3个消息处理节点(consumer1,consumer2,consumer3)为例,在对该3个消息处理节点进行升级时,可以先升级consumer1,此时(consumer2,consumer3)作为剩余消息处理节点,当consumer1升级完成后,可以从剩余消息处理节点(consumer2,consumer3)中选取consumer2进行升级,此时(consumer3)作为剩余消息处理节点,当consumer2升级完成后,可以从剩余消息处理节点(consumer3)中选取consumer3进行升级,此时已无剩余消息处理节点,故当consumer3升级完成后即完成了对所有消息处理节点的升级。
为了在确保定时任务的执行不受各消息处理节点升级影响的同时使得系统具有高并发的处理能力,在一个示例性的实施方式中,如图4a中所示,上述步骤S230中在确定多个消息处理节点中的目标消息处理节点时可以包括以下步骤:
在步骤S410中,确定已完成升级的升级消息处理节点。
已完成升级的升级消息处理节点中包括新增消息处理逻辑。
在步骤S420中,将升级消息处理节点和剩余消息处理节点作为候选消息处理节点。
可以理解的,剩余消息处理节点并未处于升级状态中,因此可以处理中间队列消息。
在步骤S430中,从上述的候选消息处理节点中选取目标消息处理节点。
由本公开的实施例的上述升级过程可知,在对多个消息处理节点进行升级的过程中,已完成升级的消息处理节点中包括新增消息处理逻辑,而尚未升级的消息处理节点中不包括新增消息处理逻辑,若当前时间节点对应的定时任务配置中的消息处理逻辑标识恰是该新增消息处理逻辑标识,那么为了确保定时任务的及时正确执行,目标消息处理节点只能从已升级完的升级消息处理节点中选取,因此,在一个示例性的实施方式中,如图4b所示,在步骤S420之前,还可以包括:
在步骤S440中,判断当前中间队列消息中的消息处理逻辑标识是否为新增消息处理逻辑标识,若是,则执行步骤S450;若否,则执行前述步骤S420。
其中,当前中间队列消息为当前待处理的中间队列消息。
在步骤S450中,将升级消息处理节点作为候选消息处理节点。
具体的实施中,服务器可以为消息消费模块配置一个调度节点,该调度节点用于执行步骤S240中的确定多个消息处理节点中的目标消息处理节点,该调度节点可以维护一个消息处理逻辑标识记录表,从而在执行步骤S440时,可以查找该记录表中是否存在当前的消息处理逻辑标识,若不存在,则表明当前的消息处理逻辑标识是一个新增消息处理逻辑标识,若存在,则表明当前的消息处理逻辑标识不是一个新增消息处理逻辑标识。在确定当前的消息处理逻辑标识是一个新增消息处理逻辑标识后,调度节点可以自动的将该新增消息处理逻辑标识添加到消息处理逻辑标识记录表中,从而完成对该记录表的及时更新,以使得系统支持高并发情况。
在步骤S250中,从多个消息处理逻辑中确定目标消息处理逻辑,该目标消息处理逻辑与中间队列消息中的消息处理逻辑标识相匹配。
具体的,可以从目标消息处理节点所包含的多个消息处理逻辑中确定出与所获取中间队列消息中的消息处理逻辑标识相匹配的目标消息处理逻辑。
在步骤260中,调用上述的目标消息处理逻辑,由该目标消息处理逻辑根据关联业务参数生成待推送的定时业务消息。
由于目标消息处理逻辑与定时任务配置中的消息处理逻辑标识相匹配,而消息处理逻辑标识是根据实际需要配置的,从而本公开的实施例允许根据实际需求去定制定时推送任务中定时业务消息的具体生成方式,使得定时推送任务的灵活性大大提高。并且,通过灰度升级消息处理节点的方式确保了定时任务的执行不受升级操作的影响,平滑上线新增消息处理逻辑。
为了提高定时业务消息的生成效率,在一个示例性的实施方式中,多个消息处理逻辑可以对应至少一个业务消息模板,业务消息模板是指有一定的格式及内容限制、部分内容可根据需要自定义配置的数据结构。那么,在执行步骤S260时,可以包括图5中的以下步骤:
在步骤S510中,调用目标消息处理逻辑,根据关联业务参数向业务服务器发送目标业务信息的获取请求,以使业务服务器根据该关联业务参数确定目标业务信息。
其中,业务服务器是与关联业务参数所对应业务相匹配的服务器,例如,若关联业务参数包括直播信息,则该业务服务器可以为直播服务器。
在步骤S520中,接收业务服务器返回的目标业务信息。
在步骤S530中,根据上述目标业务信息确定至少一个业务消息模板中的目标业务消息模板。
在步骤S540中,根据目标业务消息模板,生成待推送的定时业务消息。
下面以基于关系的目标消息处理逻辑,关联业务参数包括业务标识和目标用户标识为例对上述图5中所示方法进行介绍,
上述步骤S510的执行可以包括以下步骤:
(1)调用目标消息处理逻辑,生成目标业务关系的获取请求,其中,目标业务关系为业务标识所对应的业务对象与目标用户标识所对应的目标用户之间的关系。
例如,业务标识可以是直播标识,则目标业务关系即为直播标识对应主播与目标用户之间的关系,该关系可以但不限于包括好友关系,关注关系等等,那么该步骤中的目标业务关系可以是好友关系或者关注关系。
(2)向业务服务器发送目标业务关系的获取请求。
承接上述(1)中的举例,该业务服务器可以是直播服务器,也即在目标消息处理节点通过目标消息处理逻辑生成定时业务消息的过程中,可以调用相关接口向直播服务器发送获取目标业务关系的获取请求,该获取请求中携带有直播标识和目标用户标识。
相应的,直播服务器在接收到该获取请求后,可以确定直播标识对应的主播与目标用户标识对应的目标用户之间的目标业务关系,进而可以接收到直播服务器返回的该目标业务关系。
相应的,上述步骤S530的执行可以包括以下步骤:
(1)确定目标业务关系对应的目标关系类型。
例如,目标关系类型可以是好友关系,或者关注关系。
(2)根据目标关系类型确定第一业务消息模板中与目标用户相匹配的目标业务消息模板,其中,至少一个业务消息模板包括对应不同关系类型的第一业务消息模板。
例如,关系类型为好友关系对应的第一业务消息模板可以是“你的好友xxx开始直播了”,关系类型为关注关系对应的第一业务消息模板可以是“hi xxx,你的好友xxx也关注的xxx开始直播了”。在确定了第一业务消息模板后,即可以根据该第一业务消息模板生成与目标用相对应的定时业务消息。
实际应用中,当定时推送任务较多时会产生大量的中间队列消息,为了提高服务器对定时推送任务的灵活性以增强在高并发情况下的处理能力,在一个示例性的实施方式中,如图6所示,该方法还可以包括:
在步骤S610中,监测消息队列中所包含的中间队列消息的消息数量。
在步骤S620中,在上述的消息数量超过第一预设阈值时,确定该消息数量与多个消息处理节点的节点数量之间的第一数量差值。
其中,第一预设阈值大于或等于多个消息处理节点的节点数量,该第一预设阈值的具体数值可以根据实际需要进行设定。
例如,当前中间队列消息的消息数量为10,第一预设阈值为5,消息消费模块中多个消息处理节点的节点数量也为5,由于消息数量大于第一预设阈值,则确定该消息数量与节点数量之间的第一数量差值为5(10-5=5)。
在步骤S630中,根据上述的第一数量差值确定待增加的消息处理节点的待增节点数量。
在步骤S640中,根据上述的待增节点数量增加多个消息处理节点的节点数量。
具体的,待增节点数量可以大于或者等于第一数量差值,为消息消费模块增加该待增节点数量个消息处理节点,从而对消息消费模块中的多个消息处理节点进行了扩容,增强了在高并发情形下的处理能力。以上述举例而言,例如待增节点数量等于第一数量差值为5,则可以为消息消费模块增加5个消息处理节点,可以理解的,增加的各个消息处理节点中包括多个消息处理逻辑。
为了进一步提高服务器对定时推送任务的灵活性以节省资源开销,在另一个示例性的实施方式中,如图6所示,在步骤S610之后,该方法还可以包括:
在步骤S650中,在上述的消息数量小于第二预设阈值时,确定该消息数量与多个消息处理节点的节点数量之间的第二数量差值。
其中,第二预设阈值小于或等于多个消息处理节点的节点数量,该第二预设阈值的具体数值可以根据实际需要进行设定。
例如,当前中间队列消息的消息数量为3,第二预设阈值为5,消息消费模块中多个消息处理节点的节点数量为5,由于消息数量小于第二预设阈值,则确定该消息数量与节点数量之间的第二数量差值为2(5-3=5)。
在步骤S660中,根据该第二数量差值确定待减少的消息处理节点的待减节点数量。
在步骤S670中,根据该待减节点数量减少多个消息处理节点的节点数量。
具体的,待减节点数量可以小于或者等于第一数量差值,为消息消费模块减少该待减节点数量个消息处理节点,从而对消息消费模块中的多个消息处理节点进行了缩容,在确保处理能力的前提下节省了不必要的资源开销,提高了服务器对定时推送任务的灵活性。以上述举例而言,例如待减节点数量等于第二数量差值为2,则可以为消息消费模块减少2个消息处理节点。
本公开的实施例基于中间队列消息中的消息数量对消息消费模块中的多个消息处理节点进行灵活的扩缩容操作,不仅确保了对于定时推送任务的高并发处理能力,而且节省了系统资源开销。
图7是根据一示例性实施例示出的一种定时业务消息生成装置的框图。参照图7,该装置包括配置读取单元710,队列消息存储单元720,处理节点确定单元730,消息处理逻辑确定单元740和定时业务消息生成单元750。
该配置读取单元710,被配置为执行响应于定时任务触发指令,读取配置文件;该配置文件包括至少一个定时任务配置,该定时任务配置包括消息处理逻辑标识和关联业务参数;
该队列消息存储单元720,被配置为执行在至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置时,根据该目标定时任务配置生成中间队列消息,将该中间队列消息存储至消息队列;
该处理节点确定单元730,被配置为执行确定多个消息处理节点中的目标消息处理节点,由该目标消息处理节点从消息队列中获取中间队列消息,每个消息处理节点包括预置的多个消息处理逻辑;
该消息处理逻辑确定单元740,被配置为执行从多个消息处理逻辑中确定目标消息处理逻辑,该目标消息处理逻辑与中间队列消息中的消息处理逻辑标识相匹配;
该定时业务消息生成单元750,被配置为执行调用目标消息处理逻辑,由该目标消息处理逻辑根据关联业务参数生成待推送的定时业务消息。
在一示例性的实施方式中,该装置还可以包括:
配置参数获取单元,被配置为执行响应于针对定时任务的配置操作,获取配置参数;该配置参数包括执行时间、消息处理逻辑标识和关联业务参数;
任务配置生成单元,被配置为执行以执行时间为键数据,与该执行时间相对应的消息处理逻辑标识和关联业务参数为值数据,生成配置文件中的定时任务配置。
在一示例性的实施方式中,该装置还可以包括:
键数据获取单元,被配置为执行获取配置文件中的至少一个键数据;
第一判断单元,被配置为执行判断该至少一个键数据中是否存在与当前时间节点相匹配的目标键数据;
值数据获取单元,被配置为执行在上述第一判断单元判断的结果为是时,获取目标键数据所对应的目标值数据;
目标配置确定单元,被配置为执行将上述目标值数据所对应的定时任务配置作为目标定时任务配置,确定上述至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置。
在一示例性的实施方式中,该装置还可以包括:
第一获取单元,被配置为执行获取新增消息处理逻辑;
第一选取单元,被配置为执行从多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点,该多个消息处理节点中除上述待升级消息处理节点之外的消息处理节点作为剩余消息处理节点;
节点升级单元,被配置为执行根据上述新增消息处理逻辑对上述第一数量个待升级消息处理节点进行升级;在上述第一数量个待升级消息处理节点的升级状态为升级完成时,将上述的剩余消息处理节点作为第一选取单元中的多个消息处理节点,执行上述从多个消息处理节点中选取第一数量个消息处理节点作为待升级消息处理节点进行升级的步骤,直至不存在剩余消息处理节点。
在一示例性的实施方式中,处理节点确定单元730可以包括:
第一确定单元,被配置为执行确定已完成升级的升级消息处理节点;
第二确定单元,被配置为执行将上述的升级消息处理节点和剩余消息处理节点作为候选消息处理节点;
第二选取单元,被配置为执行从上述候选消息处理节点中选取目标消息处理节点。
在一示例性的实施方式中,处理节点确定单元730还可以包括:
第二判断单元,被配置为执行判断中间队列消息中的消息处理逻辑标识是否为新增消息处理逻辑标识;在判断的结果为否时,执行将升级消息处理节点和剩余消息处理节点作为候选消息处理节点的步骤。
第三确定单元,被配置为执行在上述第二判断单元判断的结果为是时,将升级消息处理节点作为候选消息处理节点。
在一示例性的实施方式中,该装置还可以包括:
监测单元,被配置为执行监测消息队列中所包含的中间队列消息的消息数量;
第四确定单元,被配置为执行在上述消息数量超过第一预设阈值时,确定该消息数量与多个消息处理节点的节点数量之间的第一数量差值;
第五确定单元,被配置为执行根据上述第一数量差值确定待增加的消息处理节点的待增节点数量;
节点扩容单元,被配置为执行根据上述待增节点数量增加多个消息处理节点的节点数量。
在一示例性的实施方式中,该装置还可以包括:
第六确定单元,被配置为执行在上述消息数量小于第二预设阈值时,确定该消息数量与多个消息处理节点的节点数量之间的第二数量差值;
第七确定单元,被配置为执行根据上述第二数量差值确定待减少的消息处理节点的待减节点数量;
节点缩容单元,被配置为执行根据上述待减节点数量减少多个消息处理节点的节点数量。
在一示例性的实施方式中,多个消息处理逻辑对应至少一个业务消息模板;
相应的,定时业务消息生成单元750可以包括:
第二获取单元,被配置为执行调用目标消息处理逻辑,根据关联业务参数向业务服务器发送目标业务信息的获取请求,以使该业务服务器根据关联业务参数确定目标业务信息;
接收单元,被配置为执行接收上述业务服务器返回的目标业务信息;
第八确定单元,被配置为执行根据上述目标业务信息确定至少一个业务消息模板中的目标业务消息模板;
生成子单元,被配置为执行根据上述目标业务消息模板,生成待推送的定时业务消息。
在一示例性的实施方式中,上述关联业务参数可以包括业务标识和目标用户标识;
相应的,上述第二获取单元可以包括:
请求生成单元,被配置为执行调用目标消息处理逻辑,生成目标业务关系的获取请求,该目标业务关系为上述业务标识所对应的业务对象与上述目标用户标识所对应的目标用户之间的关系;
发送单元,被配置为执行向业务服务器发送目标业务关系的获取请求;
相应的,上述第八确定单元可以包括:
第九确定单元,被配置为执行确定上述目标业务关系对应的目标关系类型;
第十确定单元,被配置为执行根据上述目标关系类型确定第一业务消息模板中与目标用户相匹配的目标业务消息模板,上述至少一个业务消息模板包括对应不同关系类型的第一业务消息模板。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一定时业务消息生成方法的步骤。
该电子设备可以是终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图8是根据一示例性实施例示出的一种用于定时业务消息生成的电子设备的框图,该电子设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)810(处理器810可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器830,一个或一个以上存储应用程序823或数据822的存储介质820(例如一个或一个以上海量存储设备)。其中,存储器830和存储介质820可以是短暂存储或持久存储。存储在存储介质820的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器810可以设置为与存储介质820通信,在电子设备800上执行存储介质820中的一系列指令操作。电子设备800还可以包括一个或一个以上电源860,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口840,和/或,一个或一个以上操作系统821,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口840可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备800的通信供应商提供的无线网络。在一个实例中,输入输出接口840包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口840可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备800还可包括比图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.根据权利要求3所述的定时业务消息生成方法,其特征在于,所述确定多个消息处理节点中的目标消息处理节点包括:
确定已完成升级的升级消息处理节点;
将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点;
从所述候选消息处理节点中选取所述目标消息处理节点。
5.根据权利要求4所述的定时业务消息生成方法,其特征在于,在将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点之前,所述方法还包括:
判断所述中间队列消息中的消息处理逻辑标识是否为新增消息处理逻辑标识;
在判断的结果为否时,执行所述将所述升级消息处理节点和所述剩余消息处理节点作为候选消息处理节点的步骤;
在判断的结果为是时,将所述升级消息处理节点作为所述候选消息处理节点。
6.根据权利要求1所述的定时业务消息生成方法,其特征在于,所述方法还包括:
监测所述消息队列中所包含的中间队列消息的消息数量;
在所述消息数量超过第一预设阈值时,确定所述消息数量与所述多个消息处理节点的节点数量之间的第一数量差值;
根据所述第一数量差值确定待增加的消息处理节点的待增节点数量;
根据所述待增节点数量增加所述多个消息处理节点的节点数量。
7.根据权利要求6所述的定时业务消息生成方法,其特征在于,所述方法还包括:
在所述消息数量小于第二预设阈值时,确定所述消息数量与所述多个消息处理节点的节点数量之间的第二数量差值;
根据所述第二数量差值确定待减少的消息处理节点的待减节点数量;
根据所述待减节点数量减少所述多个消息处理节点的节点数量。
8.一种定时业务消息生成装置,其特征在于,包括:
配置读取单元,被配置为执行响应于定时任务触发指令,读取配置文件;所述配置文件包括至少一个定时任务配置,所述定时任务配置包括消息处理逻辑标识和关联业务参数;
队列消息存储单元,被配置为执行在所述至少一个定时任务配置中存在与当前时间节点相匹配的目标定时任务配置时,根据所述目标定时任务配置生成中间队列消息,将所述中间队列消息存储至消息队列;
处理节点确定单元,被配置为执行确定多个消息处理节点中的目标消息处理节点,由所述目标消息处理节点从所述消息队列中获取所述中间队列消息,每个所述消息处理节点包括预置的多个消息处理逻辑;
消息处理逻辑确定单元,被配置为执行从所述多个消息处理逻辑中确定目标消息处理逻辑,所述目标消息处理逻辑与所述中间队列消息中的所述消息处理逻辑标识相匹配;
定时业务消息生成单元,被配置为执行调用所述目标消息处理逻辑,由所述目标消息处理逻辑根据所述关联业务参数生成待推送的定时业务消息。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的定时业务消息生成方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的定时业务消息生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011118640.4A CN112256451A (zh) | 2020-10-19 | 2020-10-19 | 定时业务消息生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011118640.4A CN112256451A (zh) | 2020-10-19 | 2020-10-19 | 定时业务消息生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112256451A true CN112256451A (zh) | 2021-01-22 |
Family
ID=74243991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011118640.4A Pending CN112256451A (zh) | 2020-10-19 | 2020-10-19 | 定时业务消息生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256451A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268340A (zh) * | 2021-04-29 | 2021-08-17 | 北京达佳互联信息技术有限公司 | 一种虚拟资源包的生成方法、装置、电子设备及存储介质 |
CN113572680A (zh) * | 2021-07-30 | 2021-10-29 | 康键信息技术(深圳)有限公司 | 模板消息发送方法、装置、设备及存储介质 |
CN115243272A (zh) * | 2022-07-20 | 2022-10-25 | 中国电信股份有限公司 | 无线接入网及其数据获取方法、通信系统及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245008A (zh) * | 2018-03-09 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 定时任务处理方法、系统和设备 |
WO2019219005A1 (zh) * | 2018-05-16 | 2019-11-21 | 杭州海康威视数字技术股份有限公司 | 一种数据处理系统及方法 |
CN110874232A (zh) * | 2018-09-04 | 2020-03-10 | 中兴通讯股份有限公司 | 虚拟机组件升级方法、设备和计算机可读存储介质 |
CN111338814A (zh) * | 2020-02-13 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 消息处理方法和装置、存储介质和电子装置 |
WO2020140683A1 (zh) * | 2019-01-04 | 2020-07-09 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111585867A (zh) * | 2020-03-31 | 2020-08-25 | 北京奇艺世纪科技有限公司 | 消息处理方法、装置、电子设备及可读存储介质 |
-
2020
- 2020-10-19 CN CN202011118640.4A patent/CN112256451A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245008A (zh) * | 2018-03-09 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 定时任务处理方法、系统和设备 |
WO2019219005A1 (zh) * | 2018-05-16 | 2019-11-21 | 杭州海康威视数字技术股份有限公司 | 一种数据处理系统及方法 |
CN110874232A (zh) * | 2018-09-04 | 2020-03-10 | 中兴通讯股份有限公司 | 虚拟机组件升级方法、设备和计算机可读存储介质 |
WO2020140683A1 (zh) * | 2019-01-04 | 2020-07-09 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN111338814A (zh) * | 2020-02-13 | 2020-06-26 | 北京奇艺世纪科技有限公司 | 消息处理方法和装置、存储介质和电子装置 |
CN111585867A (zh) * | 2020-03-31 | 2020-08-25 | 北京奇艺世纪科技有限公司 | 消息处理方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
周方;: "基于队列和多线程的异步消息处理", 中国水运(理论版), no. 05 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268340A (zh) * | 2021-04-29 | 2021-08-17 | 北京达佳互联信息技术有限公司 | 一种虚拟资源包的生成方法、装置、电子设备及存储介质 |
CN113572680A (zh) * | 2021-07-30 | 2021-10-29 | 康键信息技术(深圳)有限公司 | 模板消息发送方法、装置、设备及存储介质 |
CN115243272A (zh) * | 2022-07-20 | 2022-10-25 | 中国电信股份有限公司 | 无线接入网及其数据获取方法、通信系统及设备 |
CN115243272B (zh) * | 2022-07-20 | 2024-05-14 | 中国电信股份有限公司 | 无线接入网及其数据获取方法、通信系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112256451A (zh) | 定时业务消息生成方法、装置、电子设备及存储介质 | |
CN111784329B (zh) | 业务数据的处理方法和装置、存储介质、电子装置 | |
CN111459954A (zh) | 分布式数据同步方法、装置、设备及介质 | |
CN105847447A (zh) | 消息推送方法和装置 | |
CN110888658B (zh) | 应用程序中功能模块的动态化方法、装置及存储介质 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN111666145A (zh) | 消息队列的消息处理方法、系统和计算机设备 | |
CN113779422B (zh) | 关系链标签的实现方法、装置、电子设备及存储介质 | |
CN112988362A (zh) | 一种任务处理方法、装置、电子设备及存储介质 | |
CN113221522A (zh) | 报表生成方法、装置、系统、电子设备及存储介质 | |
CN110765165A (zh) | 一种跨系统数据同步处理的方法、装置及系统 | |
CN112148504A (zh) | 目标消息的处理方法及装置、存储介质及电子装置 | |
CN114661433A (zh) | 事件任务的调度方法及装置、存储介质、电子设备 | |
CN112650541B (zh) | 一种应用程序启动加速方法、系统、设备及存储介质 | |
CN112671572B (zh) | 智能设备配网的方法、装置、存储介质及电子装置 | |
CN113407823A (zh) | 一种ios消息推送方法及系统 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111767074A (zh) | 配置更新方法、装置、终端及存储介质 | |
CN107888772B (zh) | 一种确定配置信息的方法、装置及存储介质 | |
CN113377396B (zh) | 一种升级方法、装置、电子设备及存储介质 | |
CN113886032A (zh) | 事件调度方法、装置、电子设备及存储介质 | |
CN113296968B (zh) | 地址列表更新方法、装置、介质及电子设备 | |
CN113760581A (zh) | 基于mqtt对智能终端的属性信息进行同步的方法和系统 | |
CN112287236A (zh) | 文本消息的推送方法、装置、计算机设备及存储介质 | |
CN111679899A (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 |