System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 延时消息发送方法和装置制造方法及图纸_技高网

延时消息发送方法和装置制造方法及图纸

技术编号:40069149 阅读:8 留言:0更新日期:2024-01-16 23:54
本发明专利技术公开了一种延时消息发送方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取具有延时发送时长的待发送消息,根据延时发送时长确定待发送消息的计划发送时间,将待发送消息的主体数据存储在数据库;响应于检测到当前时刻小于计划发送时间、且该当前时刻与计划发送时间的时间间隔达到时长阈值,将待发送消息的主体数据从数据库传输到缓存,将待发送消息的标识和计划发送时间传输到缓存的有序集合;响应于检测到有序集合中待发送消息的计划发送时间小于或等于当前时刻,使用有序集合中的待发送消息的标识在缓存中查询待发送消息的主体数据,将查询到的主体数据发送。该实施方式能够支持海量延时消息的准确可靠发送。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种延时消息发送方法和装置


技术介绍

1、在某些应用场景中,并不需要即时发送消息,而是延时预设时长后再进行发送,即发送延时消息。目前,可以基于数据库任务扫描、消息队列中间件、时间轮算法等实现延时消息发送,但是在面对海量消息发送的业务场景时,这些方法的处理能力都无法满足消息发送准确性、系统可靠性和高可用性的要求。


技术实现思路

1、有鉴于此,本专利技术实施例提供一种延时消息发送方法和装置,能够支持海量延时消息的准确可靠发送。

2、为实现上述目的,根据本专利技术的一个方面,提供了一种延时消息发送方法。

3、本专利技术实施例的延时消息发送方法包括:获取具有延时发送时长的待发送消息,根据所述延时发送时长确定所述待发送消息的计划发送时间,将包括所述计划发送时间以及所述待发送消息的标识的所述待发送消息的主体数据存储在预置的数据库;响应于检测到当前时刻小于所述计划发送时间、并且该当前时刻与所述计划发送时间的时间间隔达到预设的时长阈值,将所述待发送消息的主体数据从所述数据库传输到预置的缓存,并将所述待发送消息的标识以及计划发送时间传输到所述缓存的有序集合;其中,所述待发送消息的标识和计划发送时间作为所述有序集合中的元素,所述计划发送时间作为相应元素的分数;所述有序集合中的元素按照所述分数的升序排列;周期性检测所述有序集合中分数小于或等于当前时刻的元素;响应于检测到所述有序集合中所述待发送消息的计划发送时间小于或等于当前时刻,使用所述有序集合中的所述待发送消息的标识在所述缓存中查询所述待发送消息的主体数据,并将查询到的主体数据发送。

4、可选地,所述方法进一步包括:在所述数据库中周期性检测当前时刻小于计划发送时间、并且该当前时刻与计划发送时间的时间间隔达到所述时长阈值的消息。

5、可选地,所述缓存中具有多个缓存实例,每一缓存实例中具有相同数量的多个有序集合;以及,所述将所述待发送消息的标识以及计划发送时间传输到所述缓存的有序集合,包括:计算所述待发送消息的标识的哈希值;使用该哈希值对缓存实例总数以及每一缓存实例包含的有序集合总数进行取模运算,得到第一模数和第二模数;将所述待发送消息的标识以及计划发送时间发送到第一模数指示的缓存实例中第二模数指示的有序集合。

6、可选地,所述周期性检测所述有序集合中分数小于或等于当前时刻的元素,包括:在每一检测周期,从每一有序集合的第一个元素开始向后检测,直到确定第一个分数大于当前时刻的元素,基于该元素之前的元素执行主体数据的查询及发送。

7、可选地,所述方法进一步包括:响应于接收到携带待取消消息标识的取消发送通知,判断当前时刻是否小于所述待取消消息的计划发送时间;在该当前时刻小于所述待取消消息的计划发送时间的情况下,判断该当前时刻与所述待取消消息的计划发送时间的时间间隔是否大于所述时长阈值;若大于,将所述数据库中所述待取消消息的主体数据删除;若不大于,将所述数据库以及所述缓存中所述待取消消息的主体数据删除;计算所述待取消消息的标识的哈希值,使用该哈希值对缓存实例总数以及所述有序集合总数进行取模运算,得到第三模数和第四模数;在第三模数指示的缓存实例中第四模数指示的有序集合,将所述待取消消息对应的元素删除。

8、可选地,所述数据库为关系型数据库,所述缓存为redis,所述有序集合为zset;所述主体数据进一步包括以下至少一种数据:消息主题、消息内容、消息的延时发送时长、消息对应的业务标识、消息对应的应用标识、消息的当前发送状态。

9、为实现上述目的,根据本专利技术的另一方面,提供了一种延时消息发送装置。

10、本专利技术实施例的延时消息发送装置可以包括:数据库存储单元,用于获取具有延时发送时长的待发送消息,根据所述延时发送时长确定所述待发送消息的计划发送时间,将包括所述计划发送时间以及所述待发送消息的标识的所述待发送消息的主体数据存储在预置的数据库;数据传输单元,用于:响应于检测到当前时刻小于所述计划发送时间、并且该当前时刻与所述计划发送时间的时间间隔达到预设的时长阈值,将所述待发送消息的主体数据从所述数据库传输到预置的缓存,并将所述待发送消息的标识以及计划发送时间传输到所述缓存的有序集合;其中,所述待发送消息的标识和计划发送时间作为所述有序集合中的元素,所述计划发送时间作为相应元素的分数;所述有序集合中的元素按照所述分数的升序排列;消息发送单元,用于周期性检测所述有序集合中分数小于或等于当前时刻的元素;响应于检测到所述有序集合中所述待发送消息的计划发送时间小于或等于当前时刻,使用所述有序集合中的所述待发送消息的标识在所述缓存中查询所述待发送消息的主体数据,并将查询到的主体数据发送。

11、可选地,所述数据传输单元可进一步用于:在所述数据库中周期性检测当前时刻小于计划发送时间、并且该当前时刻与计划发送时间的时间间隔达到所述时长阈值的消息。

12、为实现上述目的,根据本专利技术的又一方面,提供了一种电子设备。

13、本专利技术的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术所提供的延时消息发送方法。

14、为实现上述目的,根据本专利技术的再一方面,提供了一种计算机可读存储介质。

15、本专利技术的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术所提供的延时消息发送方法。

16、根据本专利技术的技术方案,上述专利技术中的实施例具有如下优点或有益效果:

17、接收到待发送消息之后,服务器将待发送消息的主体数据存储在成本较低但是容量较大的数据库中,同时周期性检测数据库中接近计划发送时间(例如当前时刻距计划发送时间5分钟)的消息。服务器将检测到的消息发送到成本较高但是支持高速、高并发读写操作的内存缓存中,同时将消息标识和作为分数的消息的计划发送时间发送到缓存中的有序集合进行基于计划发送时间升序的排序,使得轻量级的有序集合用于执行计划发送时间的高频率检测,基于分数的排序特征使得有序集合能够快速获得检测结果,而缓存用于提供全量数据的存储。此后,在通过对有序集合的周期性检测发现计划发送时间已经到达的消息之后,服务器根据消息标识从缓存中查询相应的消息主体数据进而执行即时发送。通过有序集合的计划发送时间检测机制以及数据库与缓存、有序集合与缓存的分离式存储方案,采用分库分表模式的数据库能够支持海量消息的存储,接近计划发送时间的待发送消息则转移到支持高速、高并发读写操作的缓存以应对即将到来的高效读写,有序集合则负责检测已经到达计划发送时间的消息,以上数据库和缓存都可根据消息发送量执行扩容,由此以较低成本实现了海量延时消息的准确发送,系统具有高可用性和高可靠性。

18、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

本文档来自技高网...

【技术保护点】

1.一种延时消息发送方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:

3.根据权利要求1所述的方法,其特征在于,所述缓存中具有多个缓存实例,每一缓存实例中具有相同数量的多个有序集合;以及,所述将所述待发送消息的标识以及计划发送时间传输到所述缓存的有序集合,包括:

4.根据权利要求1所述的方法,其特征在于,所述周期性检测所述有序集合中分数小于或等于当前时刻的元素,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:

6.根据权利要求1所述的方法,其特征在于,所述数据库为关系型数据库,所述缓存为Redis,所述有序集合为ZSet;

7.一种延时消息发送装置,其特征在于,包括:

8.根据权利要求7所述的装置,其特征在于,所述数据传输单元可进一步用于:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。

【技术特征摘要】

1.一种延时消息发送方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:

3.根据权利要求1所述的方法,其特征在于,所述缓存中具有多个缓存实例,每一缓存实例中具有相同数量的多个有序集合;以及,所述将所述待发送消息的标识以及计划发送时间传输到所述缓存的有序集合,包括:

4.根据权利要求1所述的方法,其特征在于,所述周期性检测所述有序集合中分数小于或等于当前时刻的元素,包括:

5.根据权利要求3所述的方法,其...

【专利技术属性】
技术研发人员:王晓烽
申请(专利权)人:北京沃东天骏信息技术有限公司
类型:发明
国别省市:

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

1