【技术实现步骤摘要】
延时队列的实现方法、装置、计算机可读介质及电子设备
[0001]本申请涉及信息处理
,具体而言,涉及一种延时队列的实现方法、装置、计算机可读介质及电子设备。
技术介绍
[0002]延时队列,即具有延时功能的消息队列。随着互联网服务的快速发展,延时队列得到广泛的应用。
[0003]然而,现有的延时队列在投递延时消息时,可能发生数据丢失的情况,导致数据可靠性较差。
技术实现思路
[0004]本申请的实施例提供了一种延时队列的实现方法、装置、计算机可读介质及电子设备,至少在一定程度上能够防止延时消息丢失,保证数据的可靠性。
[0005]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
[0006]根据本申请实施例的一个方面,提供了一种延时队列的实现方法,所述方法包括:在接收到客户端提交的延时任务的任务信息后,将所述延时任务的任务标识信息和过期时间存入数据库中;对所述数据库扫描,以根据所述过期时间将所述数据库中到期的延时任务的任务标识信息放入就绪队列中;从所述就绪队列取出任务标识信息放入运行队列中,并将所述任务标识信息对应的任务信息投递给所述客户端,以便所述客户端对所述任务信息对应的延时任务进行处理;如果未从所述客户端接收到与所述任务信息对应的确认消息,则将所述运行队列中与所述任务信息对应的任务标识信息重新存入所述数据库中,以重新尝试处理所述任务信息对应的延时任务,其中,所述确认消息用于指示所述客户端处理完成了相应的延时任务。
[000 ...
【技术保护点】
【技术特征摘要】
1.一种延时队列的实现方法,其特征在于,所述方法包括:在接收到客户端提交的延时任务的任务信息后,将所述延时任务的任务标识信息和过期时间存入数据库中;对所述数据库扫描,以根据所述过期时间将所述数据库中到期的延时任务的任务标识信息放入就绪队列中;从所述就绪队列取出任务标识信息放入运行队列中,并将所述任务标识信息对应的任务信息投递给所述客户端,以便所述客户端对所述任务信息对应的延时任务进行处理;如果未从所述客户端接收到与所述任务信息对应的确认消息,则将所述运行队列中与所述任务信息对应的任务标识信息重新存入所述数据库中,以重新尝试处理所述任务信息对应的延时任务,其中,所述确认消息用于指示所述客户端处理完成了相应的延时任务。2.根据权利要求1所述的延时队列的实现方法,其特征在于,所述将所述运行队列中与所述任务信息对应的任务标识信息重新存入所述数据库中,以重新尝试处理所述任务信息对应的延时任务,包括:根据当前时间确定新的过期时间,并将所述运行队列中与所述任务信息对应的任务标识信息和所述新的过期时间重新存入所述数据库中,以便在达到所述新的过期时间之后仍未从所述客户端接收到与所述任务信息对应的确认消息时,重新从所述数据库中取出所述任务标识信息放入就绪队列中,以重新尝试处理所述任务信息对应的延时任务。3.根据权利要求1所述的延时队列的实现方法,其特征在于,所述如果未从所述客户端接收到与所述任务信息对应的确认消息,则将所述运行队列中与所述任务信息对应的任务标识信息重新存入所述数据库中,包括:如果未从所述客户端接收到与所述任务信息对应的确认消息且对所述任务信息的重试次数未达到预设次数阈值,则将所述运行队列中与所述任务信息对应的任务标识信息重新存入所述数据库中。4.根据权利要求3所述的延时队列的实现方法,其特征在于,在从所述就绪队列取出任务标识信息放入运行队列中之后,所述方法还包括:如果从所述客户端接收到了与所述任务信息对应的确认消息,则从所述运行队列中取出与所述任务信息对应的任务标识信息并丢弃;如果未从所述客户端接收到与所述任务信息对应的确认消息且对所述任务信息的重试次数达到预设次数阈值,则将所述任务标识信息放入死信队列中,所述死信队列用于存储重试次数达到预设次数阈值时客户端仍未反馈确认消息的延时任务的任务标识信息。5.根据权利要求1所述的延时队列的实现方法,其特征在于,所述将所述延时任务的任务标识信息和过期时间存入数据库中,包括:将所述延时任务的任务标识信息和过期时间作为桶组中桶的桶元素存入数据库中,以通过所述数据库存储所述桶组,所述桶组包括多个桶。6.根据权利要求5所述的延时队列的实现方法,其特征在于,所述对所述数据库扫描,以根据所述过期时间将所述数据库中到期的延时任务的任务标识信息放入就绪队列中,包括:通过每个桶对应的线程对所述桶组中相应的桶进行扫描,以根据所述过期时间将每个桶中到期的延时任务的任务标识信息放入就绪队列中。
7.根据权利要求1所述的延时队列的实现方法,其特征在于,在将所述任务标识信息对应的任务信息投递给所述客户端之前,所述方法还包括:接收客户端发起的长轮询请求,并将所述长轮询请求挂起;若在接收到所述...
【专利技术属性】
技术研发人员:林炳东,康进,徐辉,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。