CN107391271B - 一种基于消息队列系统的延时任务触发方法和装置 - Google Patents

一种基于消息队列系统的延时任务触发方法和装置 Download PDF

Info

Publication number
CN107391271B
CN107391271B CN201710347968.5A CN201710347968A CN107391271B CN 107391271 B CN107391271 B CN 107391271B CN 201710347968 A CN201710347968 A CN 201710347968A CN 107391271 B CN107391271 B CN 107391271B
Authority
CN
China
Prior art keywords
message queue
message
messages
consumer
client
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.)
Active
Application number
CN201710347968.5A
Other languages
English (en)
Other versions
CN107391271A (zh
Inventor
林育智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201710347968.5A priority Critical patent/CN107391271B/zh
Publication of CN107391271A publication Critical patent/CN107391271A/zh
Application granted granted Critical
Publication of CN107391271B publication Critical patent/CN107391271B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供一种基于消息队列系统的延时任务触发方法和装置,其中方法包括:作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务。本公开降低了延时任务的触发时延和成本。

Description

一种基于消息队列系统的延时任务触发方法和装置
技术领域
本公开涉及计算机技术领域,特别涉及一种基于消息队列系统的延时任务触发方法和装置。
背景技术
有一种类型的业务需求如下:以转账业务为例,转账业务估计三分钟后到账,每一笔转账发生三分钟后对该笔业务进行检查是否到账,如果没到账则告警。上述对转账业务是否到账的查询就是一种延时任务,即转账发生一段时间(例如,三分钟)后再去查询是否到账,而不是立刻查询。为了在延时任务到达超时时间后实现对延时任务的触发,当前主流的实现方式可以是每发生一笔转账,则把相应信息写入database(数据库),由定时器定期扫描数据库,例如每10秒扫描一次,对于到达超时时间的转账业务,定时器再去查询该笔转账是否到账;如果没到账则通过告警中心告警。
但是上述这种触发延时任务的方式存在很多缺点,首先,数据库的实现成本较高;其次,定时器间隔固定的时间去扫描数据库,间隔时间如果偏小,则对数据库的性能提出更高要求(查询次数更多),而如果间隔时间偏大,则延后发现满足条件数据的时机,造成延时任务触发的延迟。再次,无效的扫描次数多,浪费机器性能,比如,假如3分钟后数据满足条件,10秒扫一次,那么在数据满足条件前,数据会被读取60秒*3/10秒=18次。
发明内容
有鉴于此,本公开提供一种基于消息队列系统的延时任务触发方法和装置,以降低延时任务触发的实现成本和触发时延。
具体地,本公开是通过如下技术方案实现的:
第一方面,提供一种基于消息队列系统的延时任务触发方法,该方法包括:
作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务。
第二方面,提供一种消息队列系统,所述系统包括:消息队列服务端和消息队列客户端,消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;
所述作为生产者的消息队列客户端,用于生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述消息队列服务端,用于接收所述作为生产者的消息队列客户端发送的各个延时任务的消息,并将消息存储至消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述作为消费者的消息队列客户端,用于接收所述消息队列依照排列顺序发送的各个消息,并依序在消息到达超时时间,触发对应的延时任务。
第三方面,提供一种计算机可读存储介质,所述介质上存储有计算机指令,该指令被处理器执行时,用于实现消息队列系统,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述消息队列系统执行以下步骤:
所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务。
第四方面,提供一种消息处理设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现消息队列系统,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述消息队列系统执行以下步骤:
所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务。
本公开的基于消息队列系统的延时任务触发方法和装置,通过在消息队列中各个消息依照FIFO机制排序,并且各个消息的延迟时间相等,使得顺序消费各个消息即可,不用做重复的扫描,降低了延时任务的触发时延;并且,通过采用消息队列系统实现对延时任务的触发,相对于数据库定时扫描方式,降低了成本。
附图说明
图1是本公开一个例子中提供的消息队列系统的系统架构图;
图2是本公开一个例子中提供的延时任务触发方法的应用系统架构图;
图3是本公开一个例子中提供的延时任务触发方法的流程图;
图4是本公开一个例子中提供的消息队列向消费者端发送消息的原理图。
具体实施方式
消息队列技术是分布式应用间交换信息的一种技术,可以用于实现系统解耦、提高系统的响应时间等作用。图1示例了一个消息队列系统的系统架构图,如图1所示,一个消息队列系统可以包括三个部分:Producer11、消息队列(Message Queue)12、Consumer13。一个消息的投递过程可以包括:Producer11作为消息的生产者(传输的数据即为消息,例如,各种类型的数据文件,或者,一个应用向其他应用发送的处理请求等),可以将生产的一个个消息14发送至消息队列12,Consumer13可以由消息队列12拉取消息进行消费(例如,根据拉取的消息触发某个任务)。
本公开的例子中,上述的消息队列12可以称为消息队列服务端,Producer11和Consumer13可以称为消息队列客户端;并且,Producer11是作为消息生产者的消息队列客户端,Consumer13是作为消息消费者的消息队列客户端。在消息队列系统的实际应用中,可以有多个Producer11,也可以有多个Consumer13,而且消息队列12也可以包括多个消息主题Topic的队列。
本公开的例子中,可以将消息队列系统应用于延时任务的触发。例如,对于三分钟查询转账业务是否到账,即可应用消息队列系统实现对查询转账这种延时任务的触发。应用消息队列系统来触发延时任务,相对于定时器扫描数据库的方式将可以降低实现成本,数据库的tps(每秒支持写入笔数)和qps(每秒支持查询数)不如消息队列,使用消息队列可以节省数据库的大量机器。
如下结合图2,描述本公开的延时任务触发方法的流程,如图2所示,Producer A是消息的生产者,可以分别向Topic 1和Topic 2的消息队列发送消息,Consumer A和Consumer B是消息的消费者,可以分别对应拉取Topic 1和Topic2消息队列中的消息进行消费。
本例子中,不同的Topic对应不同的DelayLevel,图2中的消息队列中的消息都是延迟消息DelayMessage。正常的消息一旦被Producer发布后,Consumer即可消费,而延迟消息是设定好延迟一定的时间才可被Consumer消费。而DelayLevel则是延迟消息的延迟级别,每个延迟级别对应固定的时间。例如,DelayLevel_1=3分钟;DelayLevel_2=5分钟。在图2中,不同消息主题Topic的消息队列中的消息对应的延迟时间可以不同,比如,Topic1对应的是DelayLevel_1,Topic2对应的是DelayLeve2。每个Topic存放对应的DelayLevel的消息。具体实施中,一个Topic的DelayLevel的时间长度,可以根据发送至该Topic的消息对应的延迟任务决定。如图3所示,延时任务触发方法可以包括:
在步骤301中,作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息。
例如,所述任务信息可以包括:延时任务的超时时间、以及所述延时任务的任务标识。以转账业务在三分钟以后查询为例,假设发生了一笔转账,Producer A可以生产一个对应该笔转账的一个消息,消息中可以包括该转账业务的业务ID以及超时查询时间(例如,15:03超时)。
在步骤302中,作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同。
例如,Producer A在生产一个消息后,可以将该消息发送至消息队列。以转账业务为例,Producer A可以将消息发送至预先分配的Topic 1,Topic 1的每个消息的延迟时间均为3分钟,图2中已经存放了两个消息,这两个消息是基于FIFO(first in first out,先进先出)机制排列,序号为0的消息先进入队列,序号为1的消息后进入队列。而且,Topic中的消息是先进先出,也就是先被produce的消息一定会早于后produce的消息出队,被Consumer消费;还可以说是,序号小的消息会比序号大的消息先到达超时时间,例如,ProducerA在15:00向Topic 1发送Message0,Message0的超时时间=15:03,在15:01向Topic 1发送Message1,Message1的超时时间=15:04。
在步骤303中,消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端。
例如,Topic 1可以将其中的各个消息按照FIFO的顺序,依次将消息发送至Consumer A。
以图4为例说明消息队列向Consumer A发送消息的过程:例如,作为消费者的消息队列客户端Consumer A可以向Topic 1发送消息拉取请求,该请求用于请求Topic 1在预定时间内推送接收到的消息。比如,预定时间是两秒钟,那么Topic 1在接收到请求开始的两秒钟内,只要一接收到消息就会立刻主动推送至Consumer A,Consumer A也会按照接收顺序,将各个消息存储在本地缓存中,如图4中所示的缓存。而如果在上述的两秒钟内Topic 1未接收到消息,Consumer A也不会再请求,而是等到预定时间超时后再次发送消息拉取请求。
上述图4的这种消息发送方式,使得在预定时间内的消息能够尽快的发送至消费端Consumer,相对于传统方式中的定时器定期扫描,能够避免满足条件的数据会由于定期扫描的间隔而延后发现,只要有消息就会尽快发送至Consumer;并且即使在预定时间内没有消息,消息队列和Consumer之间也不会有数据传输,Consumer只要等待即可,相对于传统方式中的定时器定期扫描,不会有多次的无效请求,节省机器性能和传输资源。
在步骤304中,所述消费者的消息队列客户端依序在消息到达超时时间,触发对应的延时任务。
例如,图4中的Consumer A可以包括两部分,一个是Topic Consumer,一个是业务Consumer(Service Consumer)。其中,Topic Consumer是用于与Topic1对接,可以接收Topic1传输的消息,并将消息依照接收顺序存储在缓存中;而Service Consumer是用于触发延时任务,比如,当Topic Consumer发现缓存中某个消息已经到达超时时间,则可以将消息中的任务信息发送至Service Consumer,比如任务信息可以是转账业务的业务ID,则Service Consumer可以根据该业务ID去查询该转账业务是否到账。Topic Consumer可以按照缓存中的各个消息的排列顺序,顺序判断各个消息是否达到超时时间,若超时,则通知Service Consumer触发对应的延时任务;否则,继续等待消息超时。
本例子的基于消息队列系统的延时任务触发方法,通过在消息队列中各个消息依照FIFO机制排序,并且各个消息的延迟时间相等,使得顺序消费各个消息即可,不用做重复的扫描,降低了延时任务的触发时延;并且,通过采用消息队列系统实现对延时任务的触发,相对于数据库定时扫描方式,降低了成本。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机指令的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。例如,所述计算机指令被设备中的处理器执行时,可以实现消息队列系统,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述消息队列系统可以实现以下步骤:所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务。
在一个例子中,本公开还可以提供一种消息处理设备,该设备可以包括存储器、一个或多个处理器(CPU)、输入/输出接口、网络接口和内存,以及存储在存储器上并可在处理器上运行的计算机指令。所述处理器执行所述指令时实现消息队列系统,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述消息队列系统执行以下步骤:所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

Claims (9)

1.一种基于消息队列系统的延时任务触发方法,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述方法包括:
所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,包括:
所述作为消费者的消息队列客户端向所述消息队列发送消息拉取请求,所述消息拉取请求用于请求所述消息队列在预定时间内推送接收到的消息;
所述消息队列将所述预定时间内接收到的各个消息,依照接收顺序依次发送至所述作为消费者的消息队列客户端;
所述作为消费者的消息队列客户端依照接收顺序将各个消息存储在缓存中。
2.根据权利要求1所述的方法,所述消息队列服务端包括多个分别属于不同消息主题Topic的消息队列,不同Topic中的消息对应的延迟时间不同。
3.根据权利要求1所述的方法,所述任务信息包括:延时任务的超时时间、以及所述延时任务的任务标识。
4.根据权利要求1所述的方法,所述由所述消费者的消息队列客户端依序在消息到达超时时间,触发对应的延时任务,包括:
所述作为消费者的消息队列客户端依照各个消息的排列顺序,顺序判断各个消息是否达到超时时间;
若超时,则触发对应的延时任务;否则,继续等待消息超时。
5.一种消息队列系统,所述系统包括:消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;
所述作为生产者的消息队列客户端,用于生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述消息队列服务端,用于接收所述作为生产者的消息队列客户端发送的各个延时任务的消息,并将消息存储至消息队列,各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述作为消费者的消息队列客户端,用于接收所述消息队列依照排列顺序发送的各个消息,并依序在消息到达超时时间,触发对应的延时任务;
所述作为消费者的消息队列客户端,具体用于向所述消息队列发送消息拉取请求,所述消息拉取请求用于请求所述消息队列在预定时间内推送接收到的消息,并将依照接收顺序将各个消息存储在缓存中;所述消息队列,具体用于将所述预定时间内接收到的各个消息,依照接收顺序依次发送至所述作为消费者的消息队列客户端。
6.根据权利要求5所述的系统,所述消息队列服务端包括多个分别属于不同消息主题Topic的消息队列,不同Topic中的消息对应的延迟时间不同。
7.根据权利要求5所述的系统,所述任务信息包括:延时任务的超时时间、以及所述延时任务的任务标识。
8.一种计算机可读存储介质,所述介质上存储有计算机指令,该指令被处理器执行时,用于实现消息队列系统,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述消息队列系统执行以下步骤:
所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,包括:
所述作为消费者的消息队列客户端向所述消息队列发送消息拉取请求,所述消息拉取请求用于请求所述消息队列在预定时间内推送接收到的消息;
所述消息队列将所述预定时间内接收到的各个消息,依照接收顺序依次发送至所述作为消费者的消息队列客户端;
所述作为消费者的消息队列客户端依照接收顺序将各个消息存储在缓存中。
9.一种消息处理设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现消息队列系统,所述消息队列系统包括消息队列服务端和消息队列客户端,所述消息队列客户端包括分别作为生产者和消费者的消息队列客户端,所述消息队列服务端包括用于在生产者和消费者之间传输消息的消息队列;所述消息队列系统执行以下步骤:
所述作为生产者的消息队列客户端生产对应延时任务的消息,所述消息中包括触发所述延时任务所需的任务信息;
所述作为生产者的消息队列客户端将各个消息发送至所述消息队列,所述各个消息在消息队列中按照超时时间顺序排列,并且同一消息队列的各个消息对应的延时任务的延迟时间相同;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,由所述消费者的消息队列客户端依序在消息到达超时时间,根据所述任务信息触发对应的延时任务;
所述消息队列将所述各个消息依照排列顺序发送至作为消费者的消息队列客户端,包括:
所述作为消费者的消息队列客户端向所述消息队列发送消息拉取请求,所述消息拉取请求用于请求所述消息队列在预定时间内推送接收到的消息;
所述消息队列将所述预定时间内接收到的各个消息,依照接收顺序依次发送至所述作为消费者的消息队列客户端;
所述作为消费者的消息队列客户端依照接收顺序将各个消息存储在缓存中。
CN201710347968.5A 2017-05-17 2017-05-17 一种基于消息队列系统的延时任务触发方法和装置 Active CN107391271B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710347968.5A CN107391271B (zh) 2017-05-17 2017-05-17 一种基于消息队列系统的延时任务触发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710347968.5A CN107391271B (zh) 2017-05-17 2017-05-17 一种基于消息队列系统的延时任务触发方法和装置

Publications (2)

Publication Number Publication Date
CN107391271A CN107391271A (zh) 2017-11-24
CN107391271B true CN107391271B (zh) 2020-10-20

Family

ID=60338950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710347968.5A Active CN107391271B (zh) 2017-05-17 2017-05-17 一种基于消息队列系统的延时任务触发方法和装置

Country Status (1)

Country Link
CN (1) CN107391271B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947468B (zh) * 2017-12-20 2021-07-02 北京谊安医疗系统股份有限公司 一种实现无阻塞无任务切换的事件延时方法
CN110018865A (zh) * 2018-01-10 2019-07-16 武汉斗鱼网络科技有限公司 定时器设置方法、存储介质、电子设备及系统
CN110245008B (zh) * 2018-03-09 2023-02-03 阿里巴巴集团控股有限公司 定时任务处理方法、系统和设备
CN109542609B (zh) * 2018-11-30 2021-08-10 深圳市盟天科技有限公司 一种代扣还款的方法、装置、计算机设备和存储介质
CN109726024A (zh) * 2018-12-28 2019-05-07 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备
CN109743137B (zh) * 2019-01-10 2022-01-14 浙江小泰科技有限公司 一种支持更新的分布式延迟消息队列处理系统
CN111510469B (zh) * 2019-01-31 2023-04-25 上海哔哩哔哩科技有限公司 一种消息处理方法和装置
CN110300067B (zh) * 2019-06-26 2022-02-08 深圳前海微众银行股份有限公司 队列调整方法、装置、设备及计算机可读存储介质
CN112181671B (zh) * 2019-07-02 2022-12-16 中移(苏州)软件技术有限公司 一种延时消息处理的方法及装置
CN110413427B (zh) * 2019-07-31 2022-03-22 中国工商银行股份有限公司 订阅数据拉取方法、装置、设备及存储介质
CN110659132B (zh) * 2019-08-29 2022-09-06 福建天泉教育科技有限公司 请求处理的优化方法及计算机可读存储介质
CN110609758A (zh) * 2019-08-30 2019-12-24 恒大智慧科技有限公司 基于队列的设备运行方法、计算机设备及可读存储介质
CN111258782B (zh) * 2020-01-17 2023-11-03 京东科技信息技术有限公司 任务队列的处理方法和装置
CN111309496A (zh) * 2020-02-10 2020-06-19 北京无限光场科技有限公司 延时任务实现方法、系统、装置、设备、存储介质
CN111949417B (zh) * 2020-07-03 2024-03-01 福建天泉教育科技有限公司 消息发送方法、存储介质
CN111901619B (zh) * 2020-07-23 2023-10-31 北京达佳互联信息技术有限公司 一种消息推送方法和装置
CN112104519B (zh) * 2020-08-06 2022-07-19 北京健康之家科技有限公司 延迟消息的投递方法及装置、存储介质、计算机设备
CN111913821B (zh) * 2020-08-17 2021-07-16 武汉众邦银行股份有限公司 一种实现跨数据源实时数据流生产消费的方法
CN112148504A (zh) * 2020-09-15 2020-12-29 海尔优家智能科技(北京)有限公司 目标消息的处理方法及装置、存储介质及电子装置
CN112187785B (zh) * 2020-09-25 2023-01-31 北京自如信息科技有限公司 消息处理方法、装置、电子设备和存储介质
CN112596882A (zh) * 2020-12-25 2021-04-02 上海悦易网络信息技术有限公司 一种延时任务调度的方法、设备及系统
CN112631806B (zh) * 2020-12-28 2024-04-23 平安银行股份有限公司 异步消息排列及调度方法、装置、电子设备及存储介质
CN112787958B (zh) * 2021-01-05 2022-09-20 北京字跳网络技术有限公司 延迟消息处理方法及设备
CN113296977B (zh) * 2021-02-24 2023-04-07 阿里巴巴集团控股有限公司 一种消息处理方法及装置
CN113612679B (zh) * 2021-07-29 2023-02-24 百度在线网络技术(北京)有限公司 一种消息验证方法、装置、电子设备及存储介质
CN113938846B (zh) * 2021-10-13 2022-12-09 福建天泉教育科技有限公司 一种消息延迟发送方法及终端
CN114244783A (zh) * 2021-12-27 2022-03-25 佛山众陶联供应链服务有限公司 一种低延时的银行回单下载方法和系统
CN115529288B (zh) * 2022-09-21 2024-04-19 上海浦东发展银行股份有限公司 一种消息推送的方法、装置、计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870767A (zh) * 2005-12-14 2006-11-29 华为技术有限公司 对定时器任务进行管理的方法
CN101183316A (zh) * 2007-11-28 2008-05-21 北京中星微电子有限公司 实时操作系统中的任务延时处理方法及系统
CN102129393A (zh) * 2011-03-09 2011-07-20 南京恩瑞特实业有限公司 通用定时任务管理的实现方法
CN106020951A (zh) * 2016-05-12 2016-10-12 中国农业银行股份有限公司 一种任务调度方法及系统
CN106445675A (zh) * 2016-10-20 2017-02-22 焦点科技股份有限公司 一种b2b平台分布式应用调度与资源分配方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477521B2 (en) * 2014-05-29 2016-10-25 Netapp, Inc. Method and system for scheduling repetitive tasks in O(1)

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870767A (zh) * 2005-12-14 2006-11-29 华为技术有限公司 对定时器任务进行管理的方法
CN101183316A (zh) * 2007-11-28 2008-05-21 北京中星微电子有限公司 实时操作系统中的任务延时处理方法及系统
CN102129393A (zh) * 2011-03-09 2011-07-20 南京恩瑞特实业有限公司 通用定时任务管理的实现方法
CN106020951A (zh) * 2016-05-12 2016-10-12 中国农业银行股份有限公司 一种任务调度方法及系统
CN106445675A (zh) * 2016-10-20 2017-02-22 焦点科技股份有限公司 一种b2b平台分布式应用调度与资源分配方法

Also Published As

Publication number Publication date
CN107391271A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107391271B (zh) 一种基于消息队列系统的延时任务触发方法和装置
CN107197015B (zh) 一种基于消息队列系统的消息处理方法和装置
CN110662085B (zh) 消息发送方法、装置、可读介质及电子设备
US10637947B2 (en) Scalable, real-time messaging system
US10382574B2 (en) Systems and methods for providing messages to multiple subscribers
CN112527525B (zh) 基于消息队列的分布式事件总线处理方法、终端及介质
US8996637B2 (en) Push notification delivery system
JP4144897B2 (ja) 共通作業キュー環境における最適格サーバ
KR20180039110A (ko) 확장 가능한, 실시간 메시징 시스템
CN112579148B (zh) 基于业务代理的业务消息处理方法、装置及电子设备
JP2019526118A (ja) メッセージングシステムの多重速度メッセージチャネル
JP2018531472A6 (ja) スケーラブルなリアルタイムメッセージングシステム
CN113296976A (zh) 消息处理方法、装置、电子设备、存储介质及程序产品
CN109688421B (zh) 请求消息处理方法、装置及系统、服务器、存储介质
CN109660589B (zh) 请求处理方法及装置、电子设备
CN104168174A (zh) 一种传输信息的方法及装置
EP2939113A1 (en) Communication system
US10313253B2 (en) Non-blocking request processing method and device
CN113835905B (zh) 一种消息队列负载均衡方法、装置、电子设备及介质
CN114296897A (zh) 一种广告请求的发送方法和装置
CN112202914B (zh) 一种消息推送方法及装置
CN112181671B (zh) 一种延时消息处理的方法及装置
JP2019526860A (ja) スケーラブルなリアルタイムメッセージングシステム
CN110928944B (zh) 一种数据处理方法及其装置
US11212338B1 (en) Managed scaling of a processing service

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1247312

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.