The embodiment of the invention provides a message processing method, a device and an electronic device, which are provided with a plurality of timing queues corresponding to a plurality of preset delay levels, respectively. The method includes: receiving a timing message and writing the timing message into a data file; and according to the delay of the timing message. At the time level, the index information of the timing message is stored in the corresponding timing queue; the multiple timing queues are monitored to determine whether there is a timing message satisfying the preset delivery condition; and if there is a timing message satisfying the preset delivery condition, the index information of the timing message satisfying the preset delivery condition will be monitored. Delivered to the destination queue for the user to obtain a timed message satisfying the preset delivery condition through the index information. The invention improves the accumulation ability of timing messages, and when the number of timing messages is large, the timing message delay error can be reduced, and the timing message can be delivered on time to a greater extent.
【技术实现步骤摘要】
消息的处理方法、装置和电子设备
本专利技术实施例计算机
,尤其涉及一种消息的处理方法、装置和设备。
技术介绍
大多数消息中间件,例如阿里云MQ(MessageQueue)和MetaQ(Metamorphosis)都可以支持定时消息或者延时消息。目前,定时消息或者延时消息已应用到许多业务场景中,举个简单的例子:当在购物平台(例如,天猫)创建订单,假设设置该订单在45分钟内未支付即被关闭,这就生成一条延时消息(或者定时消息)。在咱们的实际生活中,尤其是网络交互过程中,定时消息或者延时消息随处可见。在相关技术中定时消息(或者延时消息)的实现主要采用如下方式:存储引擎接收到客户端发送的定时消息后,首先将定时消息存入等待队列(定时队列)中,再由单独的线程时刻轮询等待队列,当满足投递条件(例如,到达延时时间)时,将定时消息投递到目标队列,由消费者消费该定时消息。专利技术人的实现本专利技术的过程中,发现现有技术存在如下缺陷:定时消息堆积能力弱,当定时消息数量较大时,服务器端调度压力大、调度能力不足,导致定时消息大量堆积,出现严重的延误投递现象。
技术实现思路
本专利技术实施例提供的消息的处理方法、装置和电子设备,提升定时消息堆积能力,且当定时消息数量较大时,可以降低定时消息延时误差,更大程度上保障定时消息被准时投递。本专利技术的一方面,提供一种消息的处理方法,设置有多个定时队列,所述多个定时队列分别与多个预设的延时级别对应,所述方法包括:接收定时消息,并将所述定时消息写入数据文件;根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中;分别监控所述多 ...
【技术保护点】
1.一种消息的处理方法,其特征在于,设置有多个定时队列,所述多个定时队列分别与多个预设的延时级别对应,所述方法包括:接收定时消息,并将所述定时消息写入数据文件;根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中;分别监控所述多个定时队列,以判断是否存在满足预设投递条件的定时消息;如果存在满足预设投递条件的定时消息,则将满足预设投递条件的定时消息的索引信息投递到所述目标队列,以供使用者通过所述索引信息获取满足预设投递条件的定时消息。
【技术特征摘要】
1.一种消息的处理方法,其特征在于,设置有多个定时队列,所述多个定时队列分别与多个预设的延时级别对应,所述方法包括:接收定时消息,并将所述定时消息写入数据文件;根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中;分别监控所述多个定时队列,以判断是否存在满足预设投递条件的定时消息;如果存在满足预设投递条件的定时消息,则将满足预设投递条件的定时消息的索引信息投递到所述目标队列,以供使用者通过所述索引信息获取满足预设投递条件的定时消息。2.根据权利要求1所述的处理方法,其特征在于,所述多个延时级别分别对应多个预设的第一延时时长;所述满足预设投递条件具体为:所述定时消息的索引信息存入所述定时队列的时间已经达到所述第一延时时长。3.根据权利要求1所述的处理方法,其特征在于,所述分别监控所述多个定时队列包括:通过一个或多个线程,以轮询的方式分别监控所述多个定时队列,所述轮询的时间间隔根据所述多个延时队列的延时级别设定。4.根据权利要求1所述的处理方法,其特征在于,所述定时消息中包含有延时级别,所述定时消息中包含的延时级别为消息生成者在生成消息的过程中从所述多个预设的延时级别中选定的;所述根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中具体为:从所述定时消息中读取所述延时级别,并根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中。5.根据权利要求1所述的处理方法,其特征在于,所述定时消息中包含有投递时间或第二延时时长,所述投递时间或第二延时时长为消息生成者在生成消息的过程中设定的;所述根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中具体为:从所述定时消息中读取所述投递时间或第二延时时长,并根据所述投递时间或所述第二延时时长,确定所述定时消息的延时级别;然后,根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中。6.根据权利要求1所述的方法,其特征在于,还包括:在将所述定时消息写入数据文件的过程中,对所述定时消息的原始主题信息进行修改,在保留所述原始主题信息的基础上,增加预设的附加主题信息,以形成新主题信息;所述根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中包括:选取具有新主题信息的定时消息,并根据该定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中。7.根据权利要求6所述的方法,其特征在于,设置有多个目标队列,所述多个目标队列分别与多个原始主题信息对应;所述将满足预设投递条件的定时消息的索引信息投递到所述目标队列,以供使用者通过所述索引信息获取满足预设投递条件的定时消息包括:根据所述索引信息从所述数据文件中获取满足预设投递条件的定时消息,并将预设投递条件的定时消息中的新主题信息修改为原始主题信息;根据所述原始主题信息,将该满足预设投递条件的定时消息的索引信息投递至与所述原始主题信息对应的目标队列,以供使用者通过所述索引信息获取满足预设投递条件的定时消息。8.根据权利要求7所述的方法,其特征在于,根据所述索引信息从所述数据文件中获取满足预设投递条件的定时消息,并将预设投递条件的定时消息中的新主题信息修改为原始主题信息之后还包括:将修改为原始主题后的定时消息写入所述数据文件的当前写入位置,并更新所述满足预设投递条件的定时消息的索引信息;所述根据所述原始主题信息,将该满足预设投递条件的定时消息的索引信息投递至与所述原始主题信息对应的目标队列,以供使用者通过所述索引信息获取满足预设投递条件的定时消息具体为:根据所述原始主题信息,将该满足预设投递条件的定时消息的更新后的索引信息投递至与所述原始主题信息对应的目标队列,以供使用者通过所述更新后的索引信息获取满足预设投递条件的定时消息。9.根据权利要求1所述的方法,其特征在于,所述定时消息的索引信息包括所述定时消息在所述数据文件中的存储位置的偏移量。10.一种消息的处理装置,其特征在于,设置有多个定时队列,所述多个定时队列分别与多个预设的延时级别对应,所述装置包括:第一接收模块,用于接收定时消息,并将所述定时消息写入数据文件;第一存储模块,用于根据所述定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中;队列监控模块,用于分别监控所述多个定时队列,以判断是否存在满足预设投递条件的定时消息;消息重投模块,用于当存在满足预设投递条件的定时消息时,将满足预设投递条件的定时消息的索引信息投递到所述目标队列,以供使用者通过所述索引信息获取满足预设投递条件的定时消息。11.根据权利要求10所述的装置,其特征在于,所述装置还包括:主题修改模块,用于在将所述定时消息写入数据文件的过程中,对所述定时消息的原始主题信息进行修改,在保留所述原始主题信息的基础上,增加预设的附加主题信息,以形成新主题信息;所述第一存储模块具体用于:选取具有新主题信息的定时消息,并根据该定时消息的延时级别,将所述定时消息的索引信息存入对应的定时队列中。12.根据权利要求11所述的装置,其特征在于,设置有多个目标队列,所述多个目标队列分别与多个原始主题信息对应;所述消息重投模块包括:消息获取单元,用于根据所述索引信息从所述数据文件中获取满足预设投递条件的定时消息;主题修改单元,用于并将预设投递条件的定时消息中的新主题信息修改为原始主题信息;消息投...
【专利技术属性】
技术研发人员:周新宇,王小瑞,冯嘉,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。