CN107231284A - 一种消息的发送方法和终端设备 - Google Patents

一种消息的发送方法和终端设备 Download PDF

Info

Publication number
CN107231284A
CN107231284A CN201610170132.8A CN201610170132A CN107231284A CN 107231284 A CN107231284 A CN 107231284A CN 201610170132 A CN201610170132 A CN 201610170132A CN 107231284 A CN107231284 A CN 107231284A
Authority
CN
China
Prior art keywords
message
mark
terminal device
queue
message identifier
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.)
Granted
Application number
CN201610170132.8A
Other languages
English (en)
Other versions
CN107231284B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610170132.8A priority Critical patent/CN107231284B/zh
Priority to TW106105127A priority patent/TWI789346B/zh
Priority to PCT/CN2017/076238 priority patent/WO2017162045A1/zh
Publication of CN107231284A publication Critical patent/CN107231284A/zh
Priority to US16/138,894 priority patent/US11252121B2/en
Application granted granted Critical
Publication of CN107231284B publication Critical patent/CN107231284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages

Abstract

本发明提供一种消息的发送方法,所述方法应用于包括消息标识队列一和消息标识队列二的终端设备中,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述方法包括:当消息将要被发送时,所述终端设备获取所述消息在所述消息标识队列一中对应的所述标识;所述终端设备将所述标识移动到所述消息标识队列二中;所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。本发明降低了方案实现的复杂的,避免了消息再次被使用时的滞后现象。

Description

一种消息的发送方法和终端设备
技术领域
本发明涉及网络技术领域,尤其涉及一种消息的发送方法和终端设备。
背景技术
现有技术中,为了保证消息至少被使用一次来实现消息使用时的可靠性,(当消息没有被使用成功时需要再次对所述消息进行使用),有以下两种解决方案:服务端管理方案:由消息系统服务端来管理消息的读取状态;客户端管理方案:由消费系统客户端管理消息的读取状态。
服务端管理方案的实现方式有以下两种:
方式一:消息系统服务端在消息的元数据信息中增加一个属性来记录消息的是否已经被成功使用。具体的,在消息被发送到消息系统服务端时将消息的使用状态设置为“未使用”,在用户获取消息后消息系统服务端将消息状态置为“正在使用”,用户成功使用后消息系统服务端主动将消息的状态置为“已使用”。用户如果未能在约定的时间内成功使用所述消息,系统会把消息从“正在使用”状态改为“未使用”状态,以使消息可以被再次使用,来保证消息至少被消费一次。
方式二:消息系统服务端将一个队列分成两部分:“未使用的消息队列”和“正在使用的消息队列”,消息发送至消息系统服务端后进入“未使用的消息队列”,用户获取消息后,将消息从“未使用的消息队列”,移至“正在使用的消息队列”,使用成功后,用户主动将消息从“正在使用的消息队列”中删除。否则,在超出约定的时间后,消息系统服务端会把消息从“正在使用的消息队列”移至“未使用的消息队列”,使消息可以被再次被使用,来保证消息至少被使用一次。
客户端管理方案:由消息系统中的客户端对消息进行管理,当所述消息没用被使用成功时,所述客户端通过锁服务来恢复所述消息以使所述消息再次被使用。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
服务端管理方案中的方式一在消息系统服务器端管理消息时需要修改消息的属性,修改消息属性会引入大量的磁盘随机读写,严重影响服务器的性能,并且,每次给用户发送消息时,都需要对消息进行过滤掉“正在使用”和“已使用”的消息,实现方案较复杂;服务端管理方案中的方式二中如果消息使用失败服务器会将所述消息加入“未使用的消息队列”的队尾,如果所述消息在使用时是按照一定的使用规则来使用时,如:先进先出的规则,所述消息再次被使用时会严重滞后,就违背了先进先出的规则;客户端管理方案由于是由客户端对消息进行管理,增加了客户端的复杂度,并且为了保证消息至少被使用一次,在消息未被使用成功的情况下需要使用锁服务,进一步增加了系统的维护成本和客户端的使用难度。
发明内容
本发明提供一种消息的发送方法和终端设备,用以解决现有技术中服务端管理方案中的方式一由于大量修改消息属性引起的影响服务器性能的问题。
本发明提供一种消息的发送方法和终端设备,还用以解决现有技术中服务端管理方案中的方式一每次给用户发送消息时,都需要对消息进行过滤引起的实现方式复杂的问题。
本发明提供一种消息的发送方法和终端设备,还用以解决现有技术中服务端管理方案中的方式二按照先进先出规则使用消息时,所述消息再次被使用时会产生严重滞后的问题。
本发明提供一种消息的发送方法和终端设备,还用以解决现有技术中客户端管理方案中由于是由客户端对消息进行管理而引起的系统维护成本高和客户端的使用难度增加的问题。
本发明提供一种消息的发送方法,所述方法应用于包括消息标识队列一和消息标识队列二的终端设备中,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述方法包括:
当消息将要被发送时,所述终端设备获取所述消息在所述消息标识队列一中对应的所述标识;
所述终端设备将所述标识移动到所述消息标识队列二中;
所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。
所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,其中,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的,当所述终端设备获取到所述消息时,所述方法还包括:
所述终端设备根据预先设定的消息发送规则确定所述消息的发送顺序;
所述终端设备根据所述发送顺序为所述消息分配所述标识;
所述终端设备根据所述标识确定所述标识在所述消息标识队列一中的排列顺序;
所述终端设备根据所述排列顺序将所述标识存储在所述消息标识队列一中,以使所述终端设备根据所述标识在所述消息标识队列一中的排列顺序处理所述消息。
所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息,具体包括:
所述终端设备根据所述标识对应消息的发送顺序将所述标识排列在所述消息标识队列二中,以使所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息。
在所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息后,所述方法还包括:
所述终端设备判断在预设时间内是否收到所述消息的反馈消息;
如果收到,所述终端设备删除所述消息和所述消息在所述消息标识队列二中的对应的所述标识;
如果没有收到,所述终端设备重新发送所述消息。
所述终端设备重新发送所述消息,具体为:
所述终端设备将所述消息对应的所述标识从所述消息标识队列二移动到所述消息标识队列一中;
所述终端设备根据所述标识对应消息的发送顺序确定所述标识在所述消息标识队列一中的排列顺序;
所述终端设备根据所述排列顺序将所述标识存储在所述消息标识队列一中;
当所述终端设备根据所述排列顺序再次获取所述消息标识队列一中的所述标识时,所述终端设备将所述标识移动到所述消息标识队列二中,以使所述终端设备重新发送所述标识对应的所述消息。
当所述终端设备根据所述标识对应消息的发送顺序一次将所述消息标识队列一中的多个标识移动到所述消息标识队列二中时,所述方法还包括:
所述终端设备根据所述多个标识对应消息的发送顺序确定所述多个标识在所述消息标识队列二中的排列顺序;
所述终端设备根据预设的发送方案按照所述排列顺序将所述消息标识队列二中的所述多个标识切分成多个区间;
所述终端设备根据所述多个标识对应消息的发送顺序确定所述多个区间的发送顺序,以使所述终端设备根据确定的所述多个区间的发送顺序发送所述多个区间内的标识对应的消息。
一种终端设备,所述终端设备中包括消息标识队列一和消息标识队列二,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述终端设备包括:
获取模块,当消息将要被发送时,用于获取所述消息在所述消息标识队列一中对应的所述标识;
移动模块,用于将所述标识移动到所述消息标识队列二中;
发送模块,根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。
所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,其中,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的,所述终端设备还包括:
第一确定模块,当所述终端设备获取到所述消息时,用于根据所述预先设定的消息发送规则确定所述消息的发送顺序;
分配模块,用于根据所述发送顺序为所述消息分配所述标识;
第二确定模块,用于根据所述标识确定所述标识在所述消息标识队列一中的排列顺序;
存储模块,用于根据所述排列顺序将所述标识存储在所述消息标识队列一中,以使所述终端设备根据所述标识在所述消息标识队列一中的排列顺序发送所述消息。
所述终端设备,还包括:
排列模块,用于根据所述标识对应消息的发送顺序将所述标识排列在所述消息标识队列二中;
所述发送模块,具体用于:
根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息。
所述终端设备还包括:
判断模块,在所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息后,用于判断在预设时间内是否收到所述消息的反馈消息;
删除模块,如果收到,用于删除所述消息和所述消息在所述消息标识队列二中的对应的所述标识;
重新发送模块,如果没有收到,用于重新发送所述消息。
所述重新发送模块,具体用于:
将所述消息对应的所述标识从所述消息标识队列二移动到所述消息标识队列一中;
根据所述标识对应消息的发送顺序确定所述标识在所述消息标识队列一中的排列顺序;
根据所述排列顺序将所述标识存储在所述消息标识队列一中;
当所述获取模块根据所述排列顺序再次获取所述消息标识队列一中的所述标识时,将所述标识移动到所述消息标识队列二中,以使所述终端设备重新发送所述标识对应的所述消息。
所述排列模块还具体用于:
当所述终端设备根据所述标识对应消息的发送顺序一次将所述消息标识队列一中的多个标识移动到所述消息标识队列二中时,根据所述多个标识对应消息的发送顺序确定所述多个标识在所述消息标识队列二中的排列顺序;
所述终端设备还包括:
切分模块,用于根据预设的发送方案按照所述排列顺序将所述消息标识队列二中的所述多个标识切分成多个区间;
第三确定模块,用于根据所述多个标识对应消息的发送顺序确定所述多个区间的发送顺序,以使所述终端设备根据确定的所述多个区间的发送顺序发送所述多个区间内的标识对应的消息。
本发明中当消息将要被发送时,通过获取所述消息在所述消息标识队列一中对应的标识,将所述标识移动到消息标识队列二中,然后所述消息标识队列二中所述标识的发送顺序发送所述消息,在保证消息至少被使用一次的情景下,由于消息标识队列一和消息标识队列二中分别存储的等待发送的消息对应的标识和正在发送的消息对应的标识,避免了对消息属性进行修改带来的麻烦,并且在发送时不需要对队列中存储的标识进行区分,降低了方案实现的复杂度,同时,由于所述标识用于表示对应消息的发送顺序,所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的,解决了如果所述消息在使用时是按照一定的使用规则来使用时,如:先进先出的规则,所述消息的再次被使用时会严重滞后的问题,再进一步的,消息的管理不是在用户端进行管理的,降低了用户端的复杂度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的一种消息的发送方法流程图;
图2为本发明实施例中的一种终端设备收到消息时消息标识队列一中已存在的标识排列示意图;
图3为本发明实施例中的一种终端设备将收到的消息对应的标识排列在消息标识队列一后的排列示意图;
图4为本发明实施例中的一种终端设备将标识从消息标识队列一移动到消息标识队列二的示意图;
图5为本发明实施例中的一种在消息未被使用成功时消息标识队列一存储了新标识的示意图;
图6为本发明实施例中的一种终端设备将未被使用成功的消息对应的标识从消息标识队列二移动到消息标识队列一后的示意图;
图7为本发明实施例中的一种终端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了克服背景技术中提出的问题,本发明提出了一种消息的发送方法,具体如图1所示,为了实现消息至少被使用一次,所述方法应用于包括消息标识队列一和消息标识队列二的终端设备中,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述标识用于表示对应消息的发送顺序,所述方法可以包括以下步骤:
步骤101,当消息将要被发送时,所述终端设备获取所述消息在所述消息标识队列一中对应的所述标识。
其中,所述终端设备可以为服务器侧的终端设备。
具体的,当消息将要被发送时可以为所述消息第一次被发送,还可以是所述消息再次被发送,此时所述消息对应的标识存储在所述消息标识队列一中,所述消息的发送顺序是根据在消息标识队列中所述消息对应的所述标识进行发送,
所述终端设备可以根据消息对应的标识的发送顺序发送对应的消息,由于,所述消息标识队列一中的标识是等待发送的消息对应的标识,因此需要先获取将要被发送的消息对应的标识,然后再进行后续的发送。
所述消息标识队列一中存储的等待发送的消息对应的标识是不可以被直接发送的需要将消息标识队列一中的消息移动到所述消息标识队列二中后再根据所述消息标识队列二中的标识进行发送,所述消息标识队列二中存储的正在发送的消息对应的标识是可以直接被发送的,所述终端设备可以只根据所述消息标识队列二中的存储的标识对对应的消息进行发送,不需要对消息或消息对应的标识进行筛选后在进行发送,同时由于标识用于表示对应消息的发送顺序,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的发送顺序处理对应的消息的,解决了如果所述消息在使用时是按照一定的使用规则来使用时,如:先进先出的规则,所述消息的再次被使用时会严重滞后的问题,并且由于是在服务器侧进行维护,降低了客户端的维护成本和使用难度。
步骤102,所述终端设备将所述标识移动到所述消息标识队列二中。
步骤103,所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。
具体的,在所述终端设备将所述消息对应的标识从所述消息标识队列一移动至所述消息标识队列二中后,所述终端设备需要根据此时消息标识队列二中的已有的标识确定对应的消息的发送顺序,以保证所述消息可以按照对应标识的发送顺序对所述消息进行发送。
所述终端设备在发送所述消息的过程中并没有对消息本身进行任何修改,降低了操作的复杂度,以及不必要的错误的出现,并且,在对消息进行发送时,不需要对消息进行过滤,避免了实现方式复杂的问题。
其中,所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,其中,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的。
当所述终端设备获取到所述消息时,所述方法还包括:
所述终端设备根据预先设定的消息发送规则确定所述消息的发送顺序;
所述终端设备根据所述发送顺序为所述消息分配所述标识;
所述终端设备根据所述标识确定所述标识在所述消息标识队列一中的排列顺序;
所述终端设备根据所述排列顺序将所述标识存储在所述消息标识队列一中,以使所述终端设备根据所述标识在所述消息标识队列一中的排列顺序处理所述消息。
具体的,在所述终端设备获取到所述消息时,所述终端设备需要为所述消息分配标识,以使所述终端设备将所述标识插入到所述消息标识队列一中,由于所述消息标识队列一中标识的排列顺序是根据消息的发送顺序确定的,因此在为所述消息分配标识之前,所述终端设备根据预先设定的消息发送规则确定所述消息的发送顺序,例如:当所述预先设定的消息发送规则为先入先出的发送规则时,所述终端设备根据接收消息的顺序为所述消息分配标识,为所述消息分配的标识可以表示出所述消息的发送顺序,当然所述预先设定的消息发送规则还可以为其他规则,如:按照消息的重要程度发送等。在所述终端设备为所述消息分配好标识后,所述终端设备可以根据所述标识确定出所述标识在所述消息标识队列一中的位置,并进行存储。在所述终端设备将所述标存储在所述消息标识队列一中后就可以根据所述消息标识队列一中标识的顺序进行处理。
所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息,具体包括:
所述终端设备根据所述标识对应消息的发送顺序将所述标识排列在所述消息标识队列二中,以使所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息。
具体的,在所述终端设备将所述消息对应的标识从所述消息标识队列一移动至所述消息标识队列二中后,所述终端设备需要根据此时消息标识队列二中的已有的标识确定出所述标识的位置,以保证所述消息可以按照所述消息的发送不会被滞后或提前。
在所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息后,所述方法还包括:
所述终端设备判断在预设时间内是否收到所述消息的反馈消息;
如果收到,所述终端设备删除所述消息和所述消息在所述消息标识队列二中的对应的所述标识;
如果没有收到,所述终端设备重新发送所述消息。
具体的,所述终端设备在预设时间内收到所述消息的反馈消息,表示所述消息被使用成功,此时所述消息和其对应的标识为无用信息,因此需要删除;当所述终端设备在预设时间内没有收到所述消息的反馈消息,表示所述消息未被使用成功,为了保证消息使用的可靠性,所述终端设备需要重新发送所述消息,以使所述消息被使用成功。
所述终端设备重新发送所述消息,具体为:
所述终端设备将所述消息对应的所述标识从所述消息标识队列二移动到所述消息标识队列一中;
所述终端设备根据所述标识对应消息的发送顺序确定所述标识在所述消息标识队列一中的排列顺序;
所述终端设备根据所述排列顺序将所述标识存储在所述消息标识队列一中;
当所述终端设备根据所述排列顺序再次获取所述消息标识队列一中的所述标识时,所述终端设备将所述标识移动到所述消息标识队列二中,以使所述终端设备重新发送所述标识对应的所述消息。
具体的,当所述消息未被使用成功时,所述消息需要再次被发送,以使所述消息使用成功,所述终端设备将所述消息对应的标识移动至所述消息标识队列一中,根据所述标识和所述消息标识队列一中存在的标识进行对比,确定所述标识在所述消息标识队列一中的位置,并进行插入,此时所述标识在所述消息标识队列一中的位置与所述消息在当前所有消息中的发送顺序是相对应的,因此所述消息的发送顺序不会滞后或提前而不符合所述预先设定的消息发送规则。在所述消息排列在所述消息标识队列一中后,当所述终端设备根据所述消息标识队列一中的排列顺序获取到所述标识时,所述终端设备将所述标识移动到所述消息标识队列二中,以使所述标识对应的消息再次被发送,所述终端设备根据所述标识确定所述标识在所述消息标识队列二中的位置,并进行插入。
当所述终端设备根据所述标识对应消息的发送顺序一次将所述消息标识队列一中的多个标识移动到所述消息标识队列二中时,所述方法还包括:
所述终端设备根据所述多个标识对应消息的发送顺序确定所述多个标识在所述消息标识队列二中的排列顺序;
所述终端设备根据预设的发送方案按照所述排列顺序将所述消息标识队列二中的所述多个标识切分成多个区间;
所述终端设备根据所述多个标识对应消息的发送顺序确定所述多个区间的发送顺序,以使所述终端设备根据确定的所述多个区间的发送顺序发送所述多个区间内的标识对应的消息。
具体的,为了保证实现快速发送消息的目的,所述终端设备还可以将一次获取的标识在所述消息标识队列二中根据预先设定的发送方案按照排列顺序进行切分,在切分后,每个区间中包含至少一个标识,所述终端在发送时将一个区间中包含的所有标识对应的消息进行发送,并且是按照标识对应的消息的发送顺序发送各个区间的。
其中,所述消息标识队列一和所述消息标识队列二具体可以通过键值系统实现,进一步的,所述消息标识队列一和消息标识队列二中的标识是通过对消息进行键值后存储的,所述键值系统具体可以是分布式键值系统。
本发明中当消息将要被发送时,通过获取所述消息在所述消息标识队列一中对应的标识,将所述标识移动到消息标识队列二中,然后所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息,在保证消息至少被使用一次的情景下,由于消息标识队列一和消息标识队列二中分别存储的等待发送的消息对应的标识和正在发送的消息对应的标识,避免了对消息属性进行修改带来的麻烦,并且在发送时不需要对队列中存储的标识进行区分,降低了方案实现的复杂度,同时,由于所述标识用于表示对应消息的发送顺序,所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的,解决了如果所述消息在使用时是按照一定的使用规则来使用时,如:先进先出的规则,所述消息的再次被使用时会严重滞后的问题,再进一步的,消息的管理不是在用户端进行管理的,降低了用户端的复杂度。
为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本申请的技术方案进行说明,具体的,消息是按照先进先出的规则进行发送的,终端设备为消息分配的标识是按照接收所述消息的顺序进行分配的,例如:所述消息是第5个被所述终端设备接收的,那么所述消息对应的标识为5,其中,所述标识是通过键值系统为所述消息进行键值后得到的。
如图2所示,当所述终端设备接收到一个消息时,所述终端设备为所述消息分配标识,由于所述消息是第3个被接收到的,因此所述标识为3,并将所述标识放入到消息标识队列一中,所述消息标识队列一中标识的排列顺序是按照标识数值的大小进行排列的,所述标识排列在所述消息标识队列一中后具体如图3所示。
当所述终端设备需要将标识为1、2、3对应的消息进行发送时,所述终端设备将标识1、2、3移动到所述消息标识队列二中,具体如图4所示,所述标识1、2、3在所述消息标识队列二中的排列顺序也是按照标识对应的数值进行排序的。此时所述终端设备按照所述标识的排列顺序发送所述标识对应的消息。
当标识为1、2对应的消息使用成功,而标识为3的消息使用不成功时,所述终端设备将所述消息标识队列二中的标识为1、2的标识和标识为1、2对应的消息删除,并将标识为3的标识移动到所述消息标识队列1中,如果此时所述消息标识队列一中存储了新的标识,具体如图5所示,所述终端设备将所述消息标识队列一中的标识对应的数值和所述标识为3对应的数值进行比较,按照数值的大小在所述消息标识队列一中进行排序并存储,存储后的所述消息标识队列一具体如图6所示,所述终端设备按照所述消息标识队列一中标识的排列顺序发送对应的消息。
当所述标识为3对应的消息再次被消费时,所述终端设备将所述标识为3的标识移动到所述消息标识队列二中,并对所述消息标识队列二中的标识根据标识对应的数值的大小进行排序,以使所述终端设备根据所述排序对对应的消息进行发送。
当所述终端设备一次将6个标识从所述消息标识队列一移动到所述消息标识队列二中时,如果预设的发送方案为2个一组进行发送,那么所述终端设备将所述消息标识队列二中的6标识分成3组,第一组内的标识为:1、2,第二组内的标识为:3、4,第三组内的标识为:5、6,所述终端设备按照标识的大小发送这五组标识,即:按照从第一组到第三组的顺序发送。
基于与上述方法同样的申请构思,本发明还提出了一种终端设备,所述终端设备中包括消息标识队列一和消息标识队列二,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述标识用于表示对应消息的发送顺序,如图7所示,该终端设备包括:
获取模块71,当消息将要被发送时,用于获取所述消息在所述消息标识队列一中对应的所述标识;
移动模块72,用于将所述标识移动到所述消息标识队列二中;
发送模块73,根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。
所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,其中,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的。
所述终端设备还包括:
第一确定模块,当所述终端设备获取到所述消息时,用于根据所述预先设定的消息发送规则确定所述消息的发送顺序;
分配模块,用于根据所述发送顺序为所述消息分配所述标识;
第二确定模块,用于根据所述标识确定所述标识在所述消息标识队列一中的排列顺序;
存储模块,用于根据所述排列顺序将所述标识存储在所述消息标识队列一中,以使所述终端设备根据所述标识在所述消息标识队列一中的排列顺序发送所述消息。
所述终端设备,还包括:
排列模块,用于根据所述标识对应消息的发送顺序将所述标识排列在所述消息标识队列二中;
所述发送模块,具体用于:
根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息。
所述终端设备还包括:
判断模块,在所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息后,用于判断在预设时间内是否收到所述消息的反馈消息;
删除模块,如果收到,用于删除所述消息和所述消息在所述消息标识队列二中的对应的所述标识;
重新发送模块,如果没有收到,用于重新发送所述消息。
所述重新发送模块,具体用于:
将所述消息对应的所述标识从所述消息标识队列二移动到所述消息标识队列一中;
根据所述标识对应消息的发送顺序确定所述标识在所述消息标识队列一中的排列顺序;
根据所述排列顺序将所述标识存储在所述消息标识队列一中;
当所述获取模块根据所述排列顺序再次获取所述消息标识队列一中的所述标识时,将所述标识移动到所述消息标识队列二中,以使所述终端设备重新发送所述标识对应的所述消息。
所述排列模块还具体用于:
当所述终端设备根据所述标识对应消息的发送顺序一次将所述消息标识队列一中的多个标识移动到所述消息标识队列二中时,根据所述多个标识对应消息的发送顺序确定所述多个标识在所述消息标识队列二中的排列顺序;
所述终端设备还包括:
切分模块,用于根据预设的发送方案按照所述排列顺序将所述消息标识队列二中的所述多个标识切分成多个区间;
第三确定模块,用于根据所述多个标识对应消息的发送顺序确定所述多个区间的发送顺序,以使所述终端设备根据确定的所述多个区间的发送顺序发送所述多个区间内的标识对应的消息。
本发明中当消息将要被发送时,通过获取所述消息在所述消息标识队列一中对应的标识,将所述标识移动到消息标识队列二中,然后根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息,在保证消息至少被使用一次的情景下,由于消息标识队列一和消息标识队列二中分别存储的等待发送的消息对应的标识和正在发送的消息对应的标识,避免了对消息属性进行修改带来的麻烦,并且在发送时不需要对队列中存储的标识进行区分,降低了方案实现的复杂度,同时,由于所述标识用于表示对应消息的发送顺序,所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的,解决了如果所述消息在使用时是按照一定的使用规则来使用时,如:先进先出的规则,所述消息的再次被使用时会严重滞后的问题,再进一步的,消息的管理不是在用户端进行管理的,降低了用户端的复杂度。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (14)

1.一种消息的发送方法,其特征在于,所述方法应用于包括消息标识队列一和消息标识队列二的终端设备中,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述方法包括:
当消息将要被发送时,所述终端设备获取所述消息在所述消息标识队列一中对应的所述标识;
所述终端设备将所述标识移动到所述消息标识队列二中;
所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。
2.如权利要求1所述方法,其特征在于,所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,其中,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的。
3.如权利要求2所述方法,其特征在于,当所述终端设备获取到所述消息时,所述方法还包括:
所述终端设备根据预先设定的消息发送规则确定所述消息的发送顺序;
所述终端设备根据所述发送顺序为所述消息分配所述标识;
所述终端设备根据所述标识确定所述标识在所述消息标识队列一中的排列顺序;
所述终端设备根据所述排列顺序将所述标识存储在所述消息标识队列一中,以使所述终端设备根据所述标识在所述消息标识队列一中的排列顺序处理所述消息。
4.如权利要求2所述方法,其特征在于,所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息,具体包括:
所述终端设备根据所述标识对应消息的发送顺序将所述标识排列在所述消息标识队列二中,以使所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息。
5.如权利要求2所述方法,其特征在于,在所述终端设备根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息后,所述方法还包括:
所述终端设备判断在预设时间内是否收到所述消息的反馈消息;
如果收到,所述终端设备删除所述消息和所述消息在所述消息标识队列二中的对应的所述标识;
如果没有收到,所述终端设备重新发送所述消息。
6.如权利要求5所述方法,其特征在于,所述终端设备重新发送所述消息,具体为:
所述终端设备将所述消息对应的所述标识从所述消息标识队列二移动到所述消息标识队列一中;
所述终端设备根据所述标识对应消息的发送顺序确定所述标识在所述消息标识队列一中的排列顺序;
所述终端设备根据所述排列顺序将所述标识存储在所述消息标识队列一中;
当所述终端设备根据所述排列顺序再次获取所述消息标识队列一中的所述标识时,所述终端设备将所述标识移动到所述消息标识队列二中,以使所述终端设备重新发送所述标识对应的所述消息。
7.如权利要求2所述方法,其特征在于,当所述终端设备根据所述标识对应消息的发送顺序一次将所述消息标识队列一中的多个标识移动到所述消息标识队列二中时,所述方法还包括:
所述终端设备根据所述多个标识对应消息的发送顺序确定所述多个标识在所述消息标识队列二中的排列顺序;
所述终端设备根据预设的发送方案按照所述排列顺序将所述消息标识队列二中的所述多个标识切分成多个区间;
所述终端设备根据所述多个标识对应消息的发送顺序确定所述多个区间的发送顺序,以使所述终端设备根据确定的所述多个区间的发送顺序发送所述多个区间内的标识对应的消息。
8.一种终端设备,其特征在于,所述终端设备中包括消息标识队列一和消息标识队列二,所述消息标识队列一用于存储等待发送的消息对应的标识,所述消息标识队列二用于存储正在发送的消息对应的标识,所述终端设备包括:
获取模块,当消息将要被发送时,用于获取所述消息在所述消息标识队列一中对应的所述标识;
移动模块,用于将所述标识移动到所述消息标识队列二中;
发送模块,根据所述消息标识队列二中所述标识所对应的发送顺序发送所述消息。
9.如权利要求8所述终端设备,其特征在于,所述标识在所述消息标识队列一或所述消息标识队列二中是按照所述发送顺序排列的,其中,所述终端设备是按照所述标识在所述消息标识队列一或所述消息标识队列二中的排列顺序处理对应的消息的。
10.如权利要求9所述终端设备,其特征在于,所述终端设备还包括:
第一确定模块,当所述终端设备获取到所述消息时,用于根据所述预先设定的消息发送规则确定所述消息的发送顺序;
分配模块,用于根据所述发送顺序为所述消息分配所述标识;
第二确定模块,用于根据所述标识确定所述标识在所述消息标识队列一中的排列顺序;
存储模块,用于根据所述排列顺序将所述标识存储在所述消息标识队列一中,以使所述终端设备根据所述标识在所述消息标识队列一中的排列顺序发送所述消息。
11.如权利要求9所述终端设备,其特征在于,所述终端设备,还包括:
排列模块,用于根据所述标识对应消息的发送顺序将所述标识排列在所述消息标识队列二中;
所述发送模块,具体用于:
根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息。
12.如权利要求9所述终端设备,其特征在于,所述终端设备还包括:
判断模块,在所述终端设备根据所述消息标识队列二中的所述标识的排列顺序发送所述标识对应的所述消息后,用于判断在预设时间内是否收到所述消息的反馈消息;
删除模块,如果收到,用于删除所述消息和所述消息在所述消息标识队列二中的对应的所述标识;
重新发送模块,如果没有收到,用于重新发送所述消息。
13.如权利要求12所述终端设备,其特征在于,所述重新发送模块,具体用于:
将所述消息对应的所述标识从所述消息标识队列二移动到所述消息标识队列一中;
根据所述标识对应消息的发送顺序确定所述标识在所述消息标识队列一中的排列顺序;
根据所述排列顺序将所述标识存储在所述消息标识队列一中;
当所述获取模块根据所述排列顺序再次获取所述消息标识队列一中的所述标识时,将所述标识移动到所述消息标识队列二中,以使所述终端设备重新发送所述标识对应的所述消息。
14.如权利要求9所述终端设备,其特征在于,所述排列模块还具体用于:
当所述终端设备根据所述标识对应消息的发送顺序一次将所述消息标识队列一中的多个标识移动到所述消息标识队列二中时,根据所述多个标识对应消息的发送顺序确定所述多个标识在所述消息标识队列二中的排列顺序;
所述终端设备还包括:
切分模块,用于根据预设的发送方案按照所述排列顺序将所述消息标识队列二中的所述多个标识切分成多个区间;
第三确定模块,用于根据所述多个标识对应消息的发送顺序确定所述多个区间的发送顺序,以使所述终端设备根据确定的所述多个区间的发送顺序发送所述多个区间内的标识对应的消息。
CN201610170132.8A 2016-03-23 2016-03-23 一种消息的发送方法和终端设备 Active CN107231284B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610170132.8A CN107231284B (zh) 2016-03-23 2016-03-23 一种消息的发送方法和终端设备
TW106105127A TWI789346B (zh) 2016-03-23 2017-02-16 訊息的發送方法和終端設備
PCT/CN2017/076238 WO2017162045A1 (zh) 2016-03-23 2017-03-10 一种消息的发送方法和终端设备
US16/138,894 US11252121B2 (en) 2016-03-23 2018-09-21 Message sending method and terminal device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610170132.8A CN107231284B (zh) 2016-03-23 2016-03-23 一种消息的发送方法和终端设备

Publications (2)

Publication Number Publication Date
CN107231284A true CN107231284A (zh) 2017-10-03
CN107231284B CN107231284B (zh) 2020-06-05

Family

ID=59899368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610170132.8A Active CN107231284B (zh) 2016-03-23 2016-03-23 一种消息的发送方法和终端设备

Country Status (4)

Country Link
US (1) US11252121B2 (zh)
CN (1) CN107231284B (zh)
TW (1) TWI789346B (zh)
WO (1) WO2017162045A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920044A (zh) * 2018-06-13 2018-11-30 佛山市澄澜点寸科技有限公司 一种应用客户端中消息展示方法及系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107231284B (zh) 2016-03-23 2020-06-05 阿里巴巴集团控股有限公司 一种消息的发送方法和终端设备
WO2021054875A1 (en) * 2019-09-19 2021-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Ultra-low latency atomic multicast

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1463249A2 (en) * 2003-03-27 2004-09-29 Microsoft Corporation Message delivery with configurable assurance and features between two endpoints
CN101739301A (zh) * 2009-12-09 2010-06-16 南京联创科技集团股份有限公司 Unix环境下进程间大量数据传输的方法
CN102970371A (zh) * 2012-12-03 2013-03-13 江苏乐买到网络科技有限公司 一种基于云服务的群组提醒方法
CN103199968A (zh) * 2012-01-09 2013-07-10 卓望数码技术(深圳)有限公司 一种消息的发送方法和系统
CN104731722A (zh) * 2015-04-17 2015-06-24 吉林大学 一种针对缓存页面的页面管理方法及装置
CN105357305A (zh) * 2015-11-13 2016-02-24 北京金山安全软件有限公司 文件发送方法和装置、文件接收方法和装置和终端设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5961659A (en) * 1997-06-30 1999-10-05 International Business Machines Corporation Independent simultaneous queueing of message descriptors
US6529932B1 (en) * 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US7996849B2 (en) * 2007-02-14 2011-08-09 International Business Machines Corporation Method, apparatus and software for managing a transactional message queue
US8261286B1 (en) * 2008-06-18 2012-09-04 Amazon Technologies, Inc. Fast sequential message store
US20100070588A1 (en) * 2008-09-15 2010-03-18 Yahoo! Inc. Reliability for instant messaging based on end point acknowledgements
CN101977358A (zh) * 2010-09-26 2011-02-16 北京握奇数据系统有限公司 一种数据短信的传输方法、装置及设备
CN103220206B (zh) * 2012-01-19 2017-04-19 阿里巴巴集团控股有限公司 一种消息发送方法、装置和一种消息接收方法、装置
CN104954446B (zh) * 2015-05-28 2019-02-12 北京中亦安图科技股份有限公司 消息推送方法及系统
US10244070B2 (en) * 2016-01-26 2019-03-26 Oracle International Corporation In-memory message sequencing
CN107231284B (zh) 2016-03-23 2020-06-05 阿里巴巴集团控股有限公司 一种消息的发送方法和终端设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1463249A2 (en) * 2003-03-27 2004-09-29 Microsoft Corporation Message delivery with configurable assurance and features between two endpoints
CN101739301A (zh) * 2009-12-09 2010-06-16 南京联创科技集团股份有限公司 Unix环境下进程间大量数据传输的方法
CN103199968A (zh) * 2012-01-09 2013-07-10 卓望数码技术(深圳)有限公司 一种消息的发送方法和系统
CN102970371A (zh) * 2012-12-03 2013-03-13 江苏乐买到网络科技有限公司 一种基于云服务的群组提醒方法
CN104731722A (zh) * 2015-04-17 2015-06-24 吉林大学 一种针对缓存页面的页面管理方法及装置
CN105357305A (zh) * 2015-11-13 2016-02-24 北京金山安全软件有限公司 文件发送方法和装置、文件接收方法和装置和终端设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920044A (zh) * 2018-06-13 2018-11-30 佛山市澄澜点寸科技有限公司 一种应用客户端中消息展示方法及系统

Also Published As

Publication number Publication date
TW201735584A (zh) 2017-10-01
TWI789346B (zh) 2023-01-11
WO2017162045A1 (zh) 2017-09-28
CN107231284B (zh) 2020-06-05
US11252121B2 (en) 2022-02-15
US20190028420A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
CN103761161B (zh) 恢复数据的方法、服务器及系统
CN104239518B (zh) 重复数据删除方法和装置
CN108965457A (zh) 一种分布式集群系统的消息传递方法、装置、设备及介质
CN105468302B (zh) 一种处理数据的方法、装置及系统
CN107479514B (zh) 一种工业大数据过程控制数据采集和传输系统与实现方法
CN110134332A (zh) 一种数据存储方法及相关装置
CN104092717A (zh) 消息处理方法及系统、消息目的端设备与分布式消息系统
CN108184233A (zh) 一种号码携带方法及系统
CN105871977A (zh) 长连接建立方法、装置及系统
CN107231284A (zh) 一种消息的发送方法和终端设备
CN109063437A (zh) 一种设备资产运维审计方法、装置、设备及可读存储介质
CN107231400A (zh) 一种数据的同步方法和装置
CN106155775A (zh) 消息处理方法、设备及系统
CN107608627A (zh) 一种远端数据分级存储方法、电子设备及存储介质
CN107579854A (zh) 一种集群告警方法、装置、设备和计算机可读存储介质
CN108614750A (zh) 宕机数据的恢复方法及装置
CN112732800B (zh) 提供跨链消息的方法和装置
CN107659652A (zh) 一种云备份的方法及装置
CN102479186A (zh) 数据处理系统集成第三方业务系统权限方法、装置及系统
CN106293996A (zh) 数据同步方法、主设备、备份设备和系统
CN108959657A (zh) 一种数据变更处理方法及装置
CN107766179A (zh) 一种基于源数据重删的备份方法、装置、及存储介质
CN104735097A (zh) 信息的收集方法和系统
CN102118256B (zh) 一种snmp数据获取方法及设备侧装置
CN108829709A (zh) 分布式数据库管理方法、装置、存储介质和处理器

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
GR01 Patent grant
GR01 Patent grant