自定义时间的定时消息发送方法、系统、终端及存储介质技术方案

技术编号:35341819 阅读:19 留言:0更新日期:2022-10-26 12:06
本发明专利技术公开了一种自定义时间的定时消息发送方法、系统、终端及存储介质,其属于消息处理的技术领域,其中方案包括:获取生产端发送的消息,并判断消息类型;若消息类型为定时消息,对定时消息进行定时消息隐藏处理,将定时消息隐藏处理得到的定时消息存储至实际消息存储的日志文件内,并生成定时消息索引;提前n秒将定时消息索引加载到时间轮内;到达消息投递时间时,获取时间轮中该消息投递时间对应的定时消息索引,并对定时消息索引进行定时消息读取处理;将定时消息读取处理得到的定时消息写入实际消息存储的日志文件内。本申请具有无需通过预设固定级别,即可发送任意消息投递时间的定时消息,适用于更多需要发送定时消息的场景的效果。场景的效果。场景的效果。

【技术实现步骤摘要】
自定义时间的定时消息发送方法、系统、终端及存储介质


[0001]本专利技术涉及消息处理的
,尤其是涉及一种自定义时间的定时消息发送方法、系统、终端及存储介质。

技术介绍

[0002]市场上大部分手机软件的消息推送系统都支持定时消息推送功能,例如想在国庆假期给用户推送一些优惠活动的消息,那么需要在国庆假期前生成定时消息,设置该定时消息的推送时间后,将该定时消息发送给消息推送系统。
[0003]目前多数消息推送系统不支持发送定时消息,仅有支持的也会提前在服务端预设定时消息发送的固定级别,消息推送系统会根据预设的固定级别发送定时消息。比如预设了5秒和10秒的固定级别,即用户只能发送5秒延迟或者10秒延迟的消息,不能发送12秒延迟的消息。
[0004]在实现本申请的过程中,专利技术人发现上述技术至少存在以下问题:在OTA(Online Travel Agency)领域,用户购买高铁票后一般会在发车前半小时接收到发车提醒,由于用户下单购票的时间不固定,因此通过预设固定级别的方式发送定时消息很难满足用户的需求。

技术实现思路

[0005]为了解决由于用户下单购票的时间不固定,因此通过预设固定级别的方式发送定时消息很难满足用户的需求的问题,本申请提供一种自定义时间的定时消息发送方法、系统、终端及存储介质。
[0006]第一方面,本申请提供一种自定义时间的定时消息发送方法,采用如下的技术方案;一种自定义时间的定时消息发送方法,包括以下步骤:获取生产端发送的消息,并根据消息属性判断消息类型;若消息类型为定时消息,对定时消息进行定时消息隐藏处理,将定时消息隐藏处理得到的定时消息存储至实际消息存储的日志文件内,并生成定时消息索引,所述定时消息包括定时消息内容和消息投递时间;以预设时间段为基准提前n秒将消息投递时间在预设时间段内的定时消息对应的定时消息索引加载到时间轮内;到达消息投递时间时,获取时间轮中该消息投递时间对应的定时消息索引,并对定时消息索引进行定时消息读取处理;将定时消息读取处理得到的定时消息写入实际消息存储的日志文件内。
[0007]通过采用上述技术方案,对定时消息进行定时消息隐藏处理,将定时消息存储到实际消息存储的日志文件内,使得消费端在实际消息存储的日志文件中暂时无法根据需求消费该定时消息,在定时消息的消息投递时间即将到达时,再通过对定时消息索引进行定
时消息读取处理,使得消费端能够在实际消息存储的日志文件中根据需求消费该定时消息,本申请无需通过预设固定级别,即可发送任意消息投递时间的定时消息,适用于更多需要发送定时消息的场景。
[0008]在一个具体的可实施方案中,所述以预设时间段为基准提前n秒将消息投递时间在预设时间段内的定时消息的定时消息索引加载到时间轮内之前包括:将预设时间段分为若干个时间长度相等的分类时间子段,并对预设时间段内所有定时消息索引按照定时消息所属的消息投递时间进行分类;将属于同一分类时间子段的定时消息索引添加到同一个索引文件内,所述索引文件的内容包括定时消息在实际消息存储的日志文件的物理偏移量、消息大小和消息投递时间。
[0009]通过采用上述技术方案,根据消息投递时间对定时消息索引进行分类,将同一时间段的定时消息索引存储到同一个索引文件内,针对不同的时间段,时间轮获取不同的索引文件,减少了内存的存储压力,提高了处理的速度。
[0010]在一个具体的可实施方案中,所述定时消息隐藏和定时消息读取分别包括以下步骤:所述定时消息隐藏的步骤为:根据获取的定时消息,将定时消息的真实消息主题改为定时消息的专用消息主题,将所述定时消息的真实消息主题名以消息属性的方式存储在定时消息内,将所述定时消息的消息投递时间隐藏在定时消息的消息标签内;所述定时消息读取的步骤为:根据定时消息在实际消息存储的日志文件的物理偏移量和消息大小,从实际消息存储的日志文件里取出定时消息,将定时消息的专用消息主题改回定时消息的真实消息主题。
[0011]通过采用上述技术方案,通过更改定时消息的真实消息主题,以定时消息的专用消息主题进行命名,由于消息主题名改了,消费端暂时消费不到这条消息,从而便于根据定时消息的专用消息主题对定时消息进行分类,将定时消息的专用消息主题改为定时消息的真实消息主题,以便于消费端能够消费到这条消息,从而对定时消息的内容进行获取,便于完成定时消息的投递。
[0012]在一个具体的可实施方案中,所述方法还包括针对定时消息的定时消息回放的步骤:所述实际消息存储的日志文件到期时需要将该日志文件删除,若所需删除的实际消息存储的日志文件内存在未投递的定时消息,则需要先将未投递的定时消息添加到最新的实际消息存储的日志文件中,再将所需删除的实际消息存储的日志文件删除。
[0013]通过采用上述技术方案,删除到期的实际消息存储的日志文件,释放磁盘容量,将未投递的定时消息提取出来,可以减少定时消息未发送即被删除的情况发生,从而尽可能确保每条定时消息都能发送出去。
[0014]在一个具体的可实施方案中,所述方法还包括针对定时消息的定时消息追溯和定时消息恢复的步骤;所述定时消息追溯的步骤为:将定时消息重新写入实际消息存储的日志文件后,将该定时消息在实际消息存储的日志文件里的物理偏移量写入定时消息写入的日志文件内,所述定时消息写入的日志文件用于在定时消息投递发生错误后对该定时消息进行追
溯;所述定时消息恢复的步骤为:获取定时消息写入的日志文件中最后时间段存储的定时消息在实际消息存储的日志文件里的物理偏移量,并根据物理偏移量所属的定时消息确定该定时消息的索引文件里的物理偏移量的情况和该定时消息写入的日志文件里的物理偏移量的情况;根据定时消息写入的日志文件里的物理偏移量和定时消息的索引文件里的物理偏移量情况,判断定时消息是否投递成功;若加入定时消息的索引文件里存在物理偏移量,而定时消息写入的日志文件里不存在物理偏移量,则判定为没有投递成功,并将定时消息重新投入时间轮中;若加入定时消息的索引文件和定时消息写入的日志文件里均存在物理偏移量,则判定为投递成功,无需将定时消息重新投入时间轮中。
[0015]通过采用上述技术方案,由于时间轮基于内存,当消息中转部发生故障时,时间轮的信息将会丢失,定时消息写入的日志文件能够在消息中转部重启后确定哪些消息已投递,从而便于确定未投递的消息,并将未投递的消息继续进行投递,尽可能确保每条消息都能被投递出去,减少消息丢失的情况发生。
[0016]在一个具体的可实施方案中,所述定时消息写入的日志文件包括第一写入文件和第二写入文件,依次交替地将所述定时消息在实际消息存储的日志文件里的物理偏移量写进第一写入文件和第二写入文件,具体包括以下步骤:A10、获取预设的计时值;A20、将定时消息在实际消息存储的日志文件里的物理偏移量写入第一写入文件,并在写入物理偏移量的同时开始计时;A30、当计时达到预设的计时值时,将计时清零,并在计时清零后重新计时,同时将定时消息在实际消息存储的日志文件里的物理偏移量写入第二写入文件,当计时再次达到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自定义时间的定时消息发送方法,其特征在于,包括:获取生产端(1)发送的消息,并根据消息属性判断消息类型;若消息类型为定时消息,对定时消息进行定时消息隐藏处理,将定时消息隐藏处理得到的定时消息存储至实际消息存储的日志文件内,并生成定时消息索引,所述定时消息包括定时消息内容和消息投递时间;以预设时间段为基准提前n秒将消息投递时间在预设时间段内的定时消息对应的定时消息索引加载到时间轮内;到达消息投递时间时,获取时间轮中该消息投递时间对应的定时消息索引,并对定时消息索引进行定时消息读取处理;将定时消息读取处理得到的定时消息写入实际消息存储的日志文件内。2.根据权利要求1所述的一种自定义时间的定时消息发送方法,其特征在于,所述以预设时间段为基准提前n秒将消息投递时间在预设时间段内的定时消息对应的定时消息索引加载到时间轮内之前包括:将预设时间段分为若干个时间长度相等的分类时间子段,并对预设时间段内所有定时消息索引按照定时消息所属的消息投递时间进行分类;将属于同一分类时间子段的定时消息索引添加到同一个索引文件内,所述索引文件的内容包括定时消息在实际消息存储的日志文件的物理偏移量、消息大小和消息投递时间。3.根据权利要求2所述的一种自定义时间的定时消息发送方法,其特征在于,所述定时消息隐藏和定时消息读取分别包括以下步骤:所述定时消息隐藏的步骤为:根据获取的定时消息,将定时消息的真实消息主题改为定时消息的专用消息主题,将所述定时消息的真实消息主题名以消息属性的方式存储在定时消息内,将所述定时消息的消息投递时间隐藏在定时消息的消息标签内;所述定时消息读取的步骤为:根据定时消息在实际消息存储的日志文件的物理偏移量和消息大小,从实际消息存储的日志文件里取出定时消息,将定时消息的专用消息主题改回定时消息的真实消息主题。4.根据权利要求3所述的一种自定义时间的定时消息发送方法,其特征在于,所述方法还包括针对定时消息的定时消息回放的步骤:所述实际消息存储的日志文件到期时需要将该日志文件删除,若所需删除的实际消息存储的日志文件内存在未投递的定时消息,则需要先将未投递的定时消息添加到最新的实际消息存储的日志文件中,再将所需删除的实际消息存储的日志文件删除。5.根据权利要求3所述的一种自定义时间的定时消息发送方法,其特征在于,所述方法还包括针对定时消息的定时消息追溯和定时消息恢复的步骤;所述定时消息追溯的步骤为:将定时消息重新写入实际消息存储的日志文件后,将该定时消息在实际消息存储的日志文件里的物理偏移量写入定时消息写入的日志文件内,所述定时消息写入的日志文件用于在定时消息投递发生错误后对该定时消息进行追溯;所述定时消息恢复的步骤为:获取定时消息写入的日志文件中最后时间段存储的定时消息在实际消息存储的日志文件里的物理偏移量,并根据物理偏移量所属的定时消息确定该定时消息的索引文件里的物理偏移量的情况和该定时消息写入的日志文件里的物理偏移量的情况;
根据定时消息写入的日志文件里的物理偏移量和定时消息的索引文件里的物理偏移量情况,判断定时消息是否投递成功;若加入定时消息的索引文件里存在物理偏移量,而定时消息写入的日志文件里不存在物理偏移量,则判定为没有投递成功,并将定时消息重新投入时间轮中;若加入定时消息的索引文件和定时消息写入的日志文件里均存在物理偏移量,则判...

【专利技术属性】
技术研发人员:陆鹏刘树东吴碧清王小雨
申请(专利权)人:艺龙网信息技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1