本发明涉及通信
技术领域:
,尤其涉及一种消息发送方法及装置。
背景技术:
:随着业务量的增加和业务场景的多样化,现有应用服务器部署的应用日渐庞大且难以维护,为简化系统架构和提高处理效率,消息队列的处理方法得到普遍的应用。在维护的消息队列机制中,当用户发起请求时响应线程根据业务场景的需要产生并投递消息至队列,处理线程从队列中提取消息并进行下一步业务处理,从而实现业务服务层的解耦。然而,现有的消息队列机制普遍为单队列单线程处理,由于在消息队列的消息调度方法中,通常采用轮询和先进先出,并根据投递时间的顺序进行处理,因此,一旦某条消息发送失败,只能将该消息插入到消息队列的队尾等待再次发送,从而容易延长消息队列中其余消息的发送时间。基于此,目前亟需一种消息发送方法,用于解决现有技术中消息发送失败后重新存入消息队列后导致其余消息发送时间延长的问题。技术实现要素:本发明实施例提供一种消息发送方法及装置,以解决现有技术中息发送失败后再次发送耗时较长的技术问题。本发明实施例提供一种消息发送方法,所述方法包括:按照第一周期从消息队列中获取第一消息;按照第二周期从第一数据库中获取第二消息;所述第二消息为尚未成功发送的消息;将所述第一消息及所述第二消息分别发送至客户端;若确定所述第一消息发送失败,则将所述第一消息存储至所述第一数据库。可选地,在所述按照第一周期从消息队列中获取第一消息之前,所述方法还包括:根据所述第一消息的消息类型,将所述第一消息发送至与所述第一消息的消息类型对应的消息队列。可选地,所述方法还包括:若确定所述第一消息发送至对应的消息队列发送失败,则将所述第一消息存储至所述第一数据库。可选地,所述按照第二周期从第一数据库中获取第二消息,包括:针对所述第一数据库中的每条消息,获取所述消息的时间戳信息;根据所述时间戳信息,确定所述消息的产生时间;所述产生时间为生成所述消息的时间;按照所述产生时间由先至后排名第一位的消息作为所述第二消息。可选地,所述方法还包括:若确定所述第二消息发送成功,则将所述第一数据库中的第二消息标记为发送成功;若确定所述第二消息发送失败,且所述第二消息的发送次数大于第一阈值,则将所述第一数据库中的第二消息标记为发送失败。可选地,所述第一周期小于所述第二周期,所述第二周期小于第二阈值,所述第二阈值为根据消息队列针对发送失败消息的重发时间间隔确定的。本发明实施例提供一种消息发送装置,所述装置包括:获取单元,用于按照第一周期从消息队列中获取第一消息;按照第二周期从第一数据库中获取第二消息;所述第二消息为尚未成功发送的消息;发送单元,用于将所述第一消息及所述第二消息分别发送至客户端;处理单元,用于若确定所述第一消息发送失败,则将所述第一消息存储至所述第一数据库。可选地,在所述获取单元所述按照第一周期从消息队列中获取第一消息之前,所述发送单元还用于:根据所述第一消息的消息类型,将所述第一消息发送至与所述第一消息的消息类型对应的消息队列。可选地,所述处理单元还用于:若确定所述第一消息发送至对应的消息队列发送失败,则将所述第一消息存储至所述第一数据库。可选地,所述获取单元具体用于:针对所述第一数据库中的每条消息,获取所述消息的时间戳信息;根据所述时间戳信息,确定所述消息的产生时间;所述产生时间为生成所述消息的时间;按照所述产生时间由先至后排名第一位的消息作为所述第二消息。可选地,所述处理单元还用于:若确定所述第二消息发送成功,则将所述第一数据库中的第二消息标记为发送成功;若确定所述第二消息发送失败,且所述第二消息的发送次数大于第一阈值,则将所述第一数据库中的第二消息标记为发送失败。可选地,所述第一周期小于所述第二周期,所述第二周期小于第二阈值,所述第二阈值为根据消息队列针对发送失败消息的重发时间间隔确定的。本发明实施例提供一种计算机可读存储介质,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机实现执行上述所述的方法。本发明实施例提供一种计算机设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述所述的方法。本发明实施例中,按照第一周期从消息队列中获取第一消息,并按照第二周期从第一数据库中获取第二消息;然后将所述第一消息及所述第二消息分别发送至客户端,若确定所述第一消息发送失败,则将所述第一消息存储至所述第一数据库。本发明实施例中,分别从消息队列和第一数据库中获取消息并发送,通过消息队列、第一数据库这两个不同的渠道同时发送消息,从而能够提高整个消息发送流程的效率;进一步地,将消息队列中发送失败的消息存储至第一数据库,由第一数据库负责将消息队列中发送失败的消息进行再次发送,避免现有技术中消息队列中的消息发送失败后重新存入消息队列中而影响消息队列中其余消息的发送速度的问题,由于消息队列中发送失败的消息占比较小,因此,采用这种方法,能够缩短大部分消息的发送耗时,进而能够提高大部分消息的发送效率。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种消息发送系统的结构示意图;图2为本发明实施例提供的一种消息发送方法所对应的流程示意图;图3为本发明实施例提供的一种消息队列与子发送装置的对应关系图;图4为本发明实施例提供的一种消息接收装置所执行的流程示意图;图5为本发明实施例提供的一种消息转发存储装置所执行的流程示意图;图6为本发明实施例提供的一种消息发送装置所执行的流程示意图;图7为本发明实施例提供的一种消息接收装置处理铁路总公司的消息所执行的流程示意图;图8为本发明实施例提供的一种消息转发存储装置处理铁路总公司的消息所执行的流程示意图;图9为本发明实施例提供的一种消息发送装置处理铁路总公司的消息所执行的流程示意图;图10为本发明实施例提供的一种消息发送装置的流程示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。图1示例性的示出了本发明实施例提供的一种消息发送系统的结构示意图,该系统架构适用于运行本发明实施例中提供的一种消息发送方法。该系统架构包括消息产生端设备101、消息接收端设备102、消息接收装置103、消息存储转发装置104、消息发送装置105。其中,消息产生端设备101用于提供待发送的消息,消息接收装置103用于从消息产生端设备101获取消息,并对获取到的消息进行处理;消息存储转发装置104用于从消息接收装置103中获取处理后的消息,并将消息存储到消息队列1041或数据库1042中;消息发送装置105用于从消息队列1041或数据库1042中获取消息,并将获取到的消息发送至消息接收端设备102中。本发明实施例中,消息产生端设备可以为服务器。消息接收端设备可以为客户端设备,例如笔记本电脑、智能手机、平板电脑、个人PC等。进一步地,消息发送装置105可以包括消息队列型消息发送装置1051和数据库型消息发送装置1052。其中,消息队列型消息发送装置1051用于从消息队列1041中获取消息,并将获取到的消息发送至消息接收端设备102中;数据库型消息发送装置1052用于从数据库1042中获取消息,并将获取到的消息发送至消息接收端设备102中。本发明实施例中,如图1所示的消息发送系统,一方面,由于该系统中各个装置相互独立,能够有效降低某一装置进行升级或改造时对其它装置的影响;另一方面,消息接收装置和消息存储转发装置部署在该系统的核心区,消息发送装置部署在该系统的直接内存存取(DirectMemoryAccess,DMA)区,使得消息接收端设备无法接触核心区数据,从而提高了系统的安全性。基于上述描述,图2示出了本发明实施例提供的一种消息发送方法所对应的流程示意图,该流程可以由消息发送装置执行。如图2所述,具体包括如下步骤:步骤201,按照第一周期从消息队列中获取第一消息。步骤202,按照第二周期从第一数据库中获取第二消息。步骤203,将所述第一消息及所述第二消息分别发送至客户端。步骤204,若确定所述第一消息发送失败,则将所述第一消息存储至所述第一数据库。本发明实施例中,分别从消息队列和第一数据库中获取消息并发送,通过消息队列、第一数据库这两个不同的渠道同时发送消息,从而能够提高整个消息发送流程的效率;进一步地,将消息队列中发送失败的消息存储至第一数据库,由第一数据库负责将消息队列中发送失败的消息进行再次发送,避免现有技术中消息队列中的消息发送失败后重新存入消息队列中而影响消息队列中其余消息的发送速度的问题,由于消息队列中发送失败的消息占比较小,因此,采用这种方法,能够缩短大部分消息的发送耗时,进而能够提高大部分消息的发送效率。具体来说,在执行步骤201之前,消息接收装置可以根据获取到的第一消息的消息类型,将所述第一消息发送至与所述第一消息的消息类型对应的消息队列。其中,消息类型包括生成消息的商户类型、生成消息的商户名称、生成消息的时间等。以生成消息的商户类型为例,商户类型的划分可以根据银联的参照表确定,例如,商户类型可以分为餐饮类、旅馆类、珠宝类、道路交通类。但有些消息类型的属性值数量过于庞大,以生成消息的时间为例,生成消息的时间的可以为2017-12-100:01:25、2017-12-110:25:50、2017-12-214:32:15等不同的时间数值,考虑到生成消息的时间的数据分布范围较大,为避免数据处理的复杂度,本申请中,可以根据二十四小时制将生成消息的时间划分为多个区间,例如,将生成消息的时间在[00:00:00-00:59:59]划分为一类,可以用数值0表示,将生成消息的时间在[01:00:00-01:59:59]划分为一类,可以用数值1表示,采用这种方式可以将生成消息的时间划分为24类别;还可以进一步细化,将小时具体到分钟、秒钟等,例如,当分析凌晨2点到3点之间生成的消息时,可以将生成消息的时间每隔一段时间划分为一类,从而有效简化了生成消息的时间数值。其它交易要素的属性值也可以进行类似简化,具体不再赘述。一个示例中,如表1所示,为一种消息类型与消息队列的对应关系示例。消息1的商户名称为公司A,消息2的商户名称为公司B,消息3的商户名称为公司C,则消息接收装置可将消息1发送至与公司A对应的消息队列a中,将消息2发送至与公司B对应的消息队列b中,将消息3发送至与公司C对应的消息队列c中。表1:一种消息类型与消息队列的对应关系示例消息消息的商户名称对应的消息队列消息1公司A消息队列a消息2公司B消息队列b消息3公司C消息队列c另一个示例中,考虑到某些消息类型的消息数量过于庞大,消息类型与消息队列之间也可以是一对多的关系。如表2所示,为另一种消息类型与消息队列的对应关系示例,若公司A的消息数量远远大于其它公司,如表2中示出的消息1、消息2、消息3、消息4、消息5、消息6的商户名称均为公司A,则可将一部分商户名称为公司A的消息发送至与公司A对应的消息队列a1中,如表2中所示出的将消息1、消息2、消息3发送至消息队列a1;将另一部分商户名称为公司A的消息发送至与公司A对应的消息队列a2中,如表2中所示出的将消息4、消息5、消息6发送至消息队列a2。表2:另一种消息类型与消息队列的对应关系示例消息消息的商户名称对应的消息队列消息1公司A消息队列a1消息2公司A消息队列a1消息3公司A消息队列a1消息4公司A消息队列a2消息5公司A消息队列a2消息6公司A消息队列a2需要说明的是,本领域技术人员可以根据经验和实际情况对表2进行修改,比如,可以在表2中增加公司A对应的消息队列的类别(如与公司A对应的消息队列a3);或者,也可以在表2中将消息1对应的消息队列修改为a2,具体不做限定。步骤201和步骤202中,第一消息为消息产生段设备提供的待发送消息;第二消息为尚未发送成功的消息,比如,第二消息可以来源于消息队列中尚未发送成功的消息;或者,第二消息也可以来源于消息转发存储装置中尚未发送成功的消息。本发明实施例中,消息发送装置可以实时地从消息队列中获取第一消息;或者,消息发送装置也可以周期性地从消息队列中获取第一消息,比如,消息发送装置按照第一周期从消息队列中获取第一消息,若确定所述第一消息发送至对应的消息队列发送失败,则将所述第一消息存储至所述第一数据库,从而能够减轻系统负担。本领域技术人员可以根据经验和实际情况自行设定第一周期,具体不做限定。消息发送装置可以实时地从第一数据库中获取第二消息;或者,消息发送装置也可以周期性地从第一数据库中获取第二消息,比如,消息发送装置按照第二周期从第一数据库中获取第二消息,从而能够减轻系统负担。本领域技术人员可以设置第一周期小于第二周期,以提高消息队列中的消息的发送效率;进一步地,还可以设置所述第二周期小于第二阈值,所述第二阈值可以根据消息队列针对发送失败消息的重发时间间隔确定。进一步地,消息发送装置可以包括消息队列型发送装置和数据库型发送装置。其中,消息队列型发送装置用于按照第一周期从消息队列中获取第一消息;数据库型发送装置用于按照第二周期从第一数据库中获取第二消息。采用这种方法,将消息发送装置划分为消息队列型发送装置和数据库型发送装置,由消息队列型发送装置处理消息队列中的消息,由数据库型发送装置处理数据库中尚未发送的消息,一方面,能够避免消息发送装置同时获取到第一消息和第二消息导致第一消息与第二消息的发送顺序无法确定的情况,进而减轻消息发送装置的运行负担;另一方面,当消息队列型发送装置出现故障时,能够通过数据库进行消息发送,当数据库型发送装置,消息队列型发送装置仍然能够发送绝大部分消息,从而在消息队列和数据库层面实现了消息发送系统的双重互灾备,提高了消息发送系统的稳定性与可靠性。更进一步地,消息队列型发送装置可以包括多个子发送装置,每个子发送装置分别用于发送从对应的消息队列中获取到的消息。图3示例性示出了本发明实施例提供的一种消息队列与子发送装置的对应关系图,如图3所示,每个消息队列对应一个子发送装置,如图3中示出的消息队列1对应子发送装置1,消息队列2对应子发送装置2,消息队列3对应子发送装置3。也就是说,子发送装置1从消息队列1中获取消息并发送,子发送装置2从消息队列2中获取消息并发送,子发送装置3从消息队列3中获取消息并发送。需要说明的是,本发明实施例中,消息队列与子发送装置之间的对应关系可以是预先设置的,比如,子发送装置1只能从消息队列1中获取消息并发送,子发送装置2只能从消息队列2中获取消息并发送,子发送装置3只能从消息队列1中获取消息并发送;或者,息队列与子发送装置之间的对应关系也可以是根据实际情况确定的,比如,将处于空闲状态的子发送装置与消息队列注册,从该消息队列中获取消息并发送,具体不做限定。更进一步地,本发明实施例提供的一种数据库型发送装置发送消息的方法,具体包括如下步骤:步骤301,针对所述第一数据库中的每条消息,获取所述消息的时间戳信息。步骤302,根据所述时间戳信息,确定所述消息的产生时间;所述产生时间为生成所述消息的时间。步骤303,按照所述产生时间由先至后排名第一位的消息作为所述第二消息。步骤304,按照第二周期从第一数据库中获取第二消息。本发明实施例中,采用上述步骤301至步骤304中的方法从第一数据库中获取消息,根据第一数据库中每条消息的时间戳信息,将第一数据库中的消息按照消息的产生时间先后顺序进行排序,将产生时间在前的消息优先发送,能够避免同一条消息被重复获取的情况,从而加快了消息处理的速度。步骤203和步骤204中,消息队列型发送装置将第一消息发送至客户端,根据是否发送成功,存在以下两种结果:(1)若确定所述第一消息发送至客户端发送成功,则将所述第一消息存储至第二数据库,便于监控消息发送的情况,有利于对发送的消息进行统计与分析;(2)若确定所述第一消息发送至客户端发送失败,则将所述第一消息存储至所述第一数据库,从而能够通过数据库型发送装置对发送失败的消息进行再次发送,避免现有技术中消息队列中的消息发送失败后重新存入消息队列中而影响消息队列中其余消息的发送速度的问题,由于消息队列中发送失败的消息占比较小,因此,采用这种方法,能够缩短大部分消息的发送耗时,进而能够提高大部分消息的发送效率。数据库型发送装置将第二消息发送至客户端,若确定所述第二消息发送至客户端发送成功,则将所述第一数据库中的第二消息标记为发送成功;若确定所述第二消息发送至客户端发送失败,且所述第二消息的发送次数大于第一阈值,则将所述第一数据库中的第二消息标记为发送失败。其中,所述第一阈值可以依据经验和实际情况进行设置,具体不做限定。具体地,当第二消息的发送次数超过第一阈值限定的次数时,将所述第一数据库中的第二消息标记为发送失败;否则就是等待重新发送第二消息,直至第二消息的发送次数超过第一阈值限定的次数。为了更好地解释本发明实施例,下面将结合图1、图4、图5和图6来描述本发明实施例中消息发送的具体流程。本发明实施例中,消息接收装置所执行的流程如图4所示,该流程具体包括:步骤400,启动消息接收线程。步骤401,从配置参数中获取配置信息;所述配置信息包括支持的报文协议类型列表、字段校验规则列表。步骤402,判断服务是否运行,若是,则执行步骤403;若否,则执行步骤410。步骤403,从消息产生端设备中获取消息。步骤404,判断所述消息是否支持报文协议,若是,则执行步骤405;若否,则执行步骤411。步骤405,判断所述消息是否符合字段校验规则,若是,则执行步骤406;若否,则执行步骤411。步骤406,根据消息的消息类型,确定消息对应的消息队列的标识。步骤407,对所述消息进行添加消息队列的标识等加工处理的操作。步骤408,将消息发送至消息存储转发装置,并判断是否发送成功,若是,则执行步骤409;若否,则执行步骤411。步骤409,返回消息产生端设备接收成功。步骤410,结束服务。步骤411,将消息丢弃,并返回消息产生端设备接收失败。上述消息接收装置主要功能为从消息产生段设备获取消息并发送至消息存储转发装置,具体地,消息接收线程启动,读取配置参数,获得支持的报文协议类型列表、字段校验规则列表等,然后在主服务保持运行的情况下,从消息产生端设备中获取消息,并在确定该消息支持报文协议并符合字段校验规则的前提下,根据消息的消息类型,确定消息对应的消息队列的标识,以及将消息队列的标识添加到消息字段中,接着将消息发送至消息存储转发装置,如果发送成功,则返回消息产生端设备接收成功,如果发送失败,则将消息丢弃,并返回消息产生端设备接收失败。消息转发存储装置所执行的流程如图5所示,该流程具体包括:步骤500,启动消息转发存储线程。步骤501,判断服务是否运行,若是,则执行步骤502;若否,则执行步骤507。步骤502,接收消息接收装置发送的消息。步骤503,判断接收到的消息中是否包含消息队列的标识,若是,则执行步骤504;若否,则执行步骤508。步骤504,根据消息队列的标识,将所述消息发送到对应的消息队列。步骤505,判断是否成功发送到对应的消息队列,若否,则执行步骤506;若是,则执行步骤509。步骤506,将所述消息存储至第一数据库,并执行步骤509。步骤507,结束服务。步骤508,返回消息接收装置处理失败。步骤509,返回消息接收装置处理成功。该消息存储转发装置的主要功能为接收消息接收装置发送的消息,同时对该消息进行转发或存储,具体地,消息转发存储线程启动,在主服务保持运行的情况下,接收消息接收装置发送的消息,如果该消息中包含消息队列的标识,则将该消息发送至对应的消息队列,进一步地,如果该消息未能成功发送至对应的消息队列,则将该消息存储到第一数据库中;如果该消息中不包含消息队列的标识,则返回消息接收装置处理失败。消息发送装置所执行的流程如图6所示,该流程具体包括:步骤600,启动消息发送线程。步骤601,从配置参数中获取消息发送装置的类型。步骤602,判断消息发送装置的类型是否为消息队列型发送装置,若是,则执行步骤603;若否,且为数据库型发送装置,则执行步骤610。步骤603,注册至消息队列。步骤604,从消息队列中获取第一消息。步骤605,返回消息队列成功应答。步骤606,将所述第一消息发送至消息接收端设备。步骤607,判断第一消息发送至消息接收端设备是否发送成功,若是,则执行步骤608;若否,则执行步骤609。步骤608,将第一消息存储至第二数据库。步骤609,将第一消息存储至第一数据库。步骤610,从第一数据库中获取第二消息。步骤611,更新第一数据库中第二消息的发送次数,令i=i+1。步骤612,将所述第二消息发送至消息接收端设备。步骤613,判断第二消息发送至消息接收端设备是否发送成功,若是,则执行步骤614;若否,则执行步骤615。步骤614,将所述第一数据库中的第二消息标记为发送成功。步骤615,判断第二消息的发送次数是否大于第一阈值,若是,则执行步骤616;若否,则返回步骤610。步骤616,将所述第一数据库中的第二消息标记为发送失败。该消息发送装置的主要功能为从消息队列及第一数据库中获取消息并发送至消息接收端设备,具体地,消息发送线程启动,读取配置参数,获得消息发送装置的类型,如果为消息队列型发送装置,在成功注册至消息队列之后,从消息队列中获取第一消息,并将所述第一消息发送至消息接收端设备,若发送成功,则将第一消息存储至第二数据库,若发送失败,则将第一消息存储至第一数据库;如果为数据库型发送装置,从第一数据库中获取第二消息之后,更新第一数据库中第二消息的发送次数,并将所述第二消息发送至消息接收端设备,若发送成功,则将所述第一数据库中的第二消息标记为发送成功;若发送失败,且第二消息的发送次数大于第一阈值,则将所述第一数据库中的第二消息标记为发送失败。下面以处理铁路总公司的一笔支付通知消息为例,结合图1、图7、图8和图9对上述所描述的流程进行举例说明,具体可参见图7、图8、图9及上述所描述的内容,此处不再赘述。基于同样的发明构思,图10示例性示出了本发明实施例提供的一种消息发送装置的结构示意图,如图10所示,该消息发送装置包括获取单元1001、发送单元1002、处理单元1003;其中,获取单元1001,用于按照第一周期从消息队列中获取第一消息;按照第二周期从第一数据库中获取第二消息;所述第二消息为尚未成功发送的消息;发送单元1002,用于将所述第一消息及所述第二消息分别发送至客户端;处理单元1003,用于若确定所述第一消息发送失败,则将所述第一消息存储至所述第一数据库。可选地,在所述获取单元1001所述按照第一周期从消息队列中获取第一消息之前,所述发送单元1002还用于:根据所述第一消息的消息类型,将所述第一消息发送至与所述第一消息的消息类型对应的消息队列。可选地,所述处理单元1003还用于:若确定所述第一消息发送至对应的消息队列发送失败,则将所述第一消息存储至所述第一数据库。可选地,所述获取单元1001具体用于:针对所述第一数据库中的每条消息,获取所述消息的时间戳信息;根据所述时间戳信息,确定所述消息的产生时间;所述产生时间为生成所述消息的时间;按照所述产生时间由先至后排名第一位的消息作为所述第二消息。可选地,所述处理单元1003还用于:若确定所述第二消息发送成功,则将所述第一数据库中的第二消息标记为发送成功;若确定所述第二消息发送失败,且所述第二消息的发送次数大于第一阈值,则将所述第一数据库中的第二消息标记为发送失败。可选地,所述第一周期小于所述第二周期,所述第二周期小于第二阈值,所述第二阈值为根据消息队列针对发送失败消息的重发时间间隔确定的。本发明实施例提供一种计算机可读存储介质,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机实现执行上述所述的方法。本发明实施例提供一种计算机设备,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述所述的方法。本发明实施例中,按照第一周期从消息队列中获取第一消息,并按照第二周期从第一数据库中获取第二消息;然后将所述第一消息及所述第二消息分别发送至客户端,若确定所述第一消息发送失败,则将所述第一消息存储至所述第一数据库。本发明实施例中,分别从消息队列和第一数据库中获取消息并发送,通过消息队列、第一数据库这两个不同的渠道同时发送消息,从而能够提高整个消息发送流程的效率;进一步地,将消息队列中发送失败的消息存储至第一数据库,由第一数据库负责将消息队列中发送失败的消息进行再次发送,避免现有技术中消息队列中的消息发送失败后重新存入消息队列中而影响消息队列中其余消息的发送速度的问题,由于消息队列中发送失败的消息占比较小,因此,采用这种方法,能够缩短大部分消息的发送耗时,进而能够提高大部分消息的发送效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3