消息状态确定方法、装置、计算机可读介质及电子设备
文献发布时间:2023-06-19 11:44:10
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种消息状态确定方法、消息状态确定装置、计算机可读介质及电子设备。
背景技术
对于物流领域而言,关于商品的消息一般可以用于表示该商品的当前运输进度。不同的仓储系统之间,通过消息的流通能够对商品进行有效管理。一般来说,一件商品可以对应与其相关的多个消息,如,发货消息、拣货消息、运输消息等。对于仓储系统而言,通常会根据接收到的商品相关消息执行相应的操作,如,拣货操作等。而商品相关的多个消息之间通常存在先后顺序,例如,商品需要先发货再运输,因此,发货消息的优先级顺序应当高于运输消息。若仓储系统或客户端先接收到的消息的优先级低于后接收到的消息,就会对仓储系统或客户端造成一定程度的混乱,进而带来客户体验不佳等一系列问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种消息状态确定方法、消息状态确定装置、计算机可读介质及电子设备,至少在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开的第一方面提供了一种消息状态确定方法,包括:
确定当前消息的消息类型,并根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序;
根据当前消息的消息编号和优先级配置信息生成消息关键字;
根据消息关键字和消息转发进程确定当前消息的消息状态,消息状态包括等待状态和执行状态。
在本公开的一种示例性实施例中,确定当前消息的消息类型,包括:
接收实时消息并根据实时消息更新消息队列;
从更新后的消息队列中确定出待处理的当前消息;
获取当前消息并读取当前消息对应的消息类型。
在本公开的一种示例性实施例中,根据预设消息类型配置获取消息类型对应的优先级配置信息之前,上述方法还可以包括以下步骤:
将预设消息类型配置与消息类型进行匹配;
若匹配结果非空,则执行上述的根据预设消息类型配置获取消息类型对应的优先级配置信息;
若匹配结果为空,则转发当前消息。
在本公开的一种示例性实施例中,根据当前消息的消息编号和优先级配置信息生成消息关键字,包括:
将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字;或者,
根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字。
在本公开的一种示例性实施例中,根据消息关键字和消息转发进程确定当前消息的消息状态,包括:
确定消息关键字对应的消息转发进程,并根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态。
在本公开的一种示例性实施例中,根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态,包括:
确定表征消息转发进程的计数数值以及当前消息在优先级配置信息中的优先级等级;
计算计数数值与优先级等级之间的差值;
若差值符合预置条件,则将当前消息的消息状态确定为执行状态;若差值不符合预置条件,则将当前消息的消息状态确定为等待状态。
在本公开的一种示例性实施例中,根据消息关键字和消息转发进程确定当前消息的消息状态之后,上述方法还可以包括以下步骤:
若消息状态为执行状态,则转发当前消息并更新消息转发进程;
若消息状态为等待状态,则在消息等待队列中添加当前消息,并在消息状态由等待状态转换为执行状态时转发当前消息。
根据本公开的第二方面,提供一种消息状态确定装置,包括消息类型确定单元、优先级配置获取单元、信息组合单元以及消息状态确定单元,其中:
消息类型确定单元,用于确定当前消息的消息类型;
优先级配置获取单元,用于根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序;
信息组合单元,用于根据当前消息的消息编号和优先级配置信息生成消息关键字;
消息状态确定单元,用于根据消息关键字和消息转发进程确定当前消息的消息状态,消息状态包括等待状态和执行状态。
在本公开的一种示例性实施例中,消息类型确定单元确定当前消息的消息类型的方式具体可以为:
消息类型确定单元接收实时消息并根据实时消息更新消息队列;
消息类型确定单元从更新后的消息队列中确定出待处理的当前消息;
消息类型确定单元获取当前消息并读取当前消息对应的消息类型。
在本公开的一种示例性实施例中,上述装置还可以包括消息类型匹配单元和消息转发单元,其中:
消息类型匹配单元,用于在优先级配置获取单元根据预设消息类型配置获取消息类型对应的优先级配置信息之前,将预设消息类型配置与消息类型进行匹配;
优先级配置获取单元,具体用于在匹配结果非空时,根据预设消息类型配置获取消息类型对应的优先级配置信息;
消息转发单元,用于在匹配结果为空时,转发当前消息。
在本公开的一种示例性实施例中,信息组合单元根据当前消息的消息编号和优先级配置信息生成消息关键字的方式具体可以为:
信息组合单元将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字;或者,
信息组合单元根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字。
在本公开的一种示例性实施例中,消息状态确定单元根据消息关键字和消息转发进程确定当前消息的消息状态的方式具体可以为:
消息状态确定单元确定消息关键字对应的消息转发进程,并根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态。
在本公开的一种示例性实施例中,消息状态确定单元根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态的方式具体可以为:
消息状态确定单元确定表征消息转发进程的计数数值以及当前消息在优先级配置信息中的优先级等级;
消息状态确定单元计算计数数值与优先级等级之间的差值;
若差值符合预置条件,消息状态确定单元将当前消息的消息状态确定为执行状态;若差值不符合预置条件,消息状态确定单元将当前消息的消息状态确定为等待状态。
在本公开的一种示例性实施例中,上述装置还可以包括以下消息转发进程更新单元和消息队列更新单元,其中:
消息转发单元,还用于在消息状态确定单元根据消息关键字和消息转发进程确定当前消息的消息状态之后,以及在消息状态为执行状态时,转发当前消息;
消息转发进程更新单元,用于更新消息转发进程;
消息队列更新单元,用于在消息状态为等待状态时,在消息等待队列中添加当前消息,并在消息状态由等待状态转换为执行状态时转发当前消息。
根据本公开的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述实施例中第一方面所述的消息状态确定方法。
根据本公开的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上述实施例中第一方面所述的消息状态确定方法。
本公开提供的技术方案可以包括以下有益效果:
本公开的一些实施例所提供的技术方案中,可以确定当前消息(如,拣货消息)的消息类型(如,拣货),并根据预设消息类型配置获取消息类型对应的优先级配置信息(拣货消息-发货消息-运输消息-收货消息);其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序,以便根据转发顺序转发至相应的终端或服务器;进而,可以根据当前消息的消息编号(如,19965733221)和优先级配置信息生成消息关键字(如,19965733221运输消息);进而,可以根据消息关键字和消息转发进程(如,已发货)确定当前消息的消息状态,以确定当前消息是否与消息转发进行相匹配,其中,消息状态包括等待状态和执行状态。依据上述方案描述,本公开一方面能够在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响;另一方面,能够通过对不同消息之间的优先级排序,便于后续根据排序结果对消息进行依次转发,减少不同业务之间的相互影响,其中,多个消息可以对应一个业务,例如,商品A由第一位置运送至第二位置的业务,可以对应拣货消息、发货消息、运输消息以及收货消息等。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了根据本公开一示例性实施例的一种消息状态确定方法的流程示意图;
图2示出了根据本公开一示例性实施例的另一种消息状态确定方法的流程示意图;
图3示出了根据本公开一示例性实施例的用于执行消息状态确定方法的模块示意图;
图4示出了根据本公开一示例性实施例的用于执行消息状态确定方法的模块应用示意图;
图5示出了根据本公开一示例性实施例的消息状态确定装置的结构框图;
图6示出了适于用来实现本公开一示例性实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
请参阅图1,图1示出了根据本公开一示例性实施例的一种消息状态确定方法的流程示意图,该消息状态确定方法可以由服务器或终端设备来实现。
如图1所示,根据本公开的一个实施例的消息状态确定方法,包括如下步骤S110、步骤S120以及步骤S130,其中:
步骤S110:确定当前消息的消息类型,并根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序。
步骤S120:根据当前消息的消息编号和优先级配置信息生成消息关键字。
步骤S130:根据消息关键字和消息转发进程确定当前消息的消息状态,消息状态包括等待状态和执行状态。
以下对各步骤进行详细说明:
在步骤S110中,确定当前消息的消息类型,并根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序。
其中,当前消息可以用于表征业务对应的当前待处理的消息,业务可以为物流业务,如,将商品A由第一位置运送至第二位置。预设消息类型配置可以用于表示同一业务的多个消息分别对应的消息类型之间的优先级,该优先级可以表示执行优先级也可以表示转发优先级,预设消息类型配置中包括消息类型以及优先级配置信息之间的映射关系,对于消息类型和优先级配置信息可以通过键值方式进行存储和查询,即,消息类型为key,优先级配置信息为value。优先级配置消息与一个或多个消息对应,上述的当前消息可以为上述一个或多个消息中的任一消息。消息类型用于区分不同的消息内容,在不同的业务中同一消息类型可以对应多个消息,同一业务中各消息的消息类型可以不同也可以部分不同,另外,同一业务中各消息的消息内容可以相同也可以不相同也可以部分相同,本公开实施例不作限定。
举例来说,若当前消息a-1-2的消息内容为:从第一仓库发出商品A;商品A的消息编号为1,商品A的消息类型为发货消息。预设消息类型中对应的当前消息a-1-2对应的优先级配置信息可以为:a-1-1优先级高于a-1-2。
本公开实施例中,可选的,确定当前消息的消息类型,包括:
接收实时消息并根据实时消息更新消息队列;
从更新后的消息队列中确定出待处理的当前消息;
获取当前消息并读取当前消息对应的消息类型。
其中,实时消息可以为任一任务中的任一消息。
具体地,接收实时消息并根据实时消息更新消息队列的方式可以为:通过信息接收模块接收实时消息(如,消息a-1-2、消息a-1-1、消息a-2-1、消息a-2-2、消息a-2-3等);将接收到的实时消息添加至消息队列中以实现对于消息队列的更新,或者,将接收到的实时消息按照消息类型添加至同一消息类型的消息队列中以实现对于消息队列的更新,或者,将接收到的实时消息按照消息编号添加至同一消息编号的消息队列中以实现对于消息队列的更新。
具体地,从更新后的消息队列中确定待处理的当前消息的方式可以为:根据当前消息在消息队列中的位置,按照顺序将当前消息的下一消息确定为待处理的当前消息。
具体地,获取当前消息并读取当前消息对应的消息类型的方式具体可以为:获取当前消息的消息内容以及当前消息对应的相关信息;
可见,实施该可选的实施例,能够通过对消息队列的不断更新,提升对于业务的执行效率。
本公开实施例中,可选的,根据预设消息类型配置获取消息类型对应的优先级配置信息之前,上述方法还可以包括以下步骤:
将预设消息类型配置与消息类型进行匹配;
若匹配结果非空,则执行上述的根据预设消息类型配置获取消息类型对应的优先级配置信息;
若匹配结果为空,则转发当前消息。
其中,匹配结果为空,可以理解为,无匹配结果;匹配结果非空,可以理解为,存在匹配结果。若匹配结果为空,则表示当前消息对应的业务有且仅有当前消息,故,该当前消息不存在与其对应的优先级配置信息。
可见,实施该可选的实施例,能够根据优先级配置信息对当前消息进行区分,将无优先级配置信息的当前消息及时输出,提升对于业务的处理效率。
在步骤S120中,根据当前消息的消息编号和优先级配置信息生成消息关键字。
其中,当前消息的消息编号除了能够用于区分当前消息与其他消息之外,还能够用于表征当前消息对应的业务所属的类型,例如,表征当前消息“从保税仓发货”对应的业务“将潜水服从地区A运输至地区B”所属的类型为“服饰类”。
本公开实施例中,可选的,根据当前消息的消息编号和优先级配置信息生成消息关键字的方式还可以为:根据第一映射关系确定当前消息的消息编号对应的第一数值,以及,根据第二映射关系确定当前消息的优先级配置信息对应的第二数值,并对第一数值和第二数值计算加权和,将加权和结果确定为消息关键字。这样能够通过映射关系的匹配确定出消息编号及优先级配置信息对应的数值,有利于提升确定消息关键字的效率,进而改善消息乱序发送的问题。
本公开实施例中,可选的,根据当前消息的消息编号和优先级配置信息生成消息关键字,包括:
将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字;或者,
根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字。
其中,消息关键字用于通过字符串的形式独一无二地表示当前消息对应的业务,消息关键字可以通过二进制、十进制、十六进制等进行表示,本公开实施例不作限定。另外,可选的,该字符串也可以为哈希值。
具体地,将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字,可以理解为,若消息编号为1,优先级配置信息对应的字符串为123,那么拼接结果可以为1123。
以及,针对上述的根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字,其中,预设表达式可以为:
另外,可选的,将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字的方式可以为:
将当前消息的消息编号和优先级配置信息对应的字符串以部分拼接的方式进行拼接,并将拼接结果确定为消息关键字;举例来说,消息编号可以为123,优先级配置信息对应的字符串可以为456,那么,拼接结果可以为142563、124536、142356等,本公开实施例不作限定。
可见,实施该可选的实施例,通过拼接的方式确定消息关键字的效率更高,通过预设表达式确定消息关键字能够一定程度上保证消息关键字的唯一性,使得一个业务对应一个消息关键字,减少不同业务之间的相互影响。
在步骤S130中,根据消息关键字和消息转发进程确定当前消息的消息状态,消息状态包括等待状态和执行状态。
其中,当前消息的消息状态用于指示终端或服务器是否执行与当前消息相关的操作,如,转发当前消息;其中,等待状态用于指示终端或服务器不执行与当前消息相关的操作,执行状态用于指示终端或服务器执行与当前消息相关的操作。另外,除了等待状态和执行状态,消息状态中还可以包括异常状态,异常状态用于表征当前消息属于异常消息,无法添加至等待队列也无法进行转发。当当前消息的消息状态为异常状态时,可以输出该当前消息和用于提示该当前消息需要进行人工处理的提示信息。
本公开实施例中,可选的,根据消息关键字和消息转发进程确定当前消息的消息状态,包括:
确定消息关键字对应的消息转发进程,并根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态。
其中,消息转发进程用于表征当前消息对应的业务的完成度/执行进度,当应用于物流领域时,可以表征商品的运送进度。消息转发进程可以通过数值(如,2)进行表示,消息转发进程与优先级配置信息的匹配程度也可以通过数值(如,3)进行表示。
可见,实施该可选的实施例,能够通过消息转发进程确定是否应当转发当前消息,以提升业务对应的多个消息之间的有序性,减少不同业务之间的相互影响。
进一步地,根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态,包括:
确定表征消息转发进程的计数数值以及当前消息在优先级配置信息中的优先级等级;
计算计数数值与优先级等级之间的差值(如,0);
若差值符合预置条件,则将当前消息的消息状态确定为执行状态;若差值不符合预置条件,则将当前消息的消息状态确定为等待状态。
其中,优先级等级用于表示当前消息的消息类型在优先级配置信息中的执行顺序,本公开实施例,若优先级等级为2,当前消息在业务对应的多个消息中的执行顺序应为第二位,优先级等级为3的消息的执行顺序晚于优先级等级为2的消息。预置条件规定了确定当前消息的消息状态的条件。预置条件可以包括固定数值,也可以包括数值范围,本公开实施例不作限定。
具体地,确定表征消息转发进程的计数数值的方式可以为:检测计数器的当前数据,将当前数据确定为表征消息转发进程的计数数值。在本公开实施例中,可以将计数器的当前数据和优先级配置信息通过键值方式进行存储,即,优先级配置信息为key,当前数据为value。
可见,实施该可选的实施例,能够通过预置条件确定当前消息的消息状态,进而根据消息状态处理当前消息,以提升业务对应的多个消息之间的有序性。
本公开实施例中,可选的,根据消息关键字和消息转发进程确定当前消息的消息状态之后,上述方法还可以包括以下步骤:
若消息状态为执行状态,则转发当前消息并更新消息转发进程;
若消息状态为等待状态,则在消息等待队列中添加当前消息,并在消息状态由等待状态转换为执行状态时转发当前消息。
其中,消息等待队列中包括待转发的一个或多个消息,当消息等待队列中存在某一消息对应的优先级等级与该消息对应的消息转发进程相匹配,则将该消息的消息状态由等待状态变更为执行状态,以转发该消息。
具体地,更新消息转发进程的方式可以为:通过更新指令指示计数器的当前数值增加N,其中,N为正整数。
可见,实施该可选的实施例,能够通过增加多个消息之间的有序性,减少不同业务之间的相互影响,进而提升对于业务的处理效率。
可见,实施图1所示的消息状态确定方法,能够在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响;以及,能够通过对不同消息之间的优先级排序,便于后续根据排序结果对消息进行依次转发,减少不同业务之间的相互影响。
请参阅图2,图2示出了根据本公开一示例性实施例的另一种消息状态确定方法的流程示意图。请参阅图2,另一种消息状态确定方法可以包括步骤S200~步骤S230,其中:
步骤S200:接收实时消息并根据实时消息更新消息队列。
步骤S202:从更新后的消息队列中确定出待处理的当前消息。
步骤S204:获取当前消息并读取当前消息对应的消息类型。
步骤S206:将预设消息类型配置与消息类型进行匹配,如果匹配结果非空,则执行步骤S208;如果匹配结果为空,则执行步骤S210。
步骤S208:根据预设消息类型配置获取消息类型对应的优先级配置信息。
步骤S210:转发当前消息。
步骤S212:根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序。
步骤S214:将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字。
步骤S216:根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字。
步骤S218:确定消息关键字对应的消息转发进程。
步骤S220:确定表征消息转发进程的计数数值以及当前消息在优先级配置信息中的优先级等级。
步骤S222:计算计数数值与优先级等级之间的差值,若差值符合预置条件,则执行步骤S224;若差值不符合预置条件,则执行步骤S226。
步骤S224:将当前消息的消息状态确定为执行状态,并执行步骤S228。
步骤S226:将当前消息的消息状态确定为等待状态,并执行步骤S230
步骤S228:转发当前消息并更新消息转发进程。
步骤S230:在消息等待队列中添加当前消息,并在消息状态由等待状态转换为执行状态时转发当前消息。
具体地,实时消息可以为物流消息,关于一个商品的物流消息可以存在多个,如,受理消息、拣货消息、发货消息、运输消息、收获消息等。因此,可以通过终端或服务器对实时消息进行接收,在一个时段内接收到的实时消息可以是针对一个商品的多个物流消息,也可以是分别针对多个商品的多个物流消息,本公开实施例不作限定。进一步地,可以根据接收到的实时消息更新消息队列,例如,将该实时消息增加到消息队列中,作为消息队列中的最后一位消息,进而,增加了实时消息的消息队列可以作为更新后的消息队列供终端或服务器获取消息,获取的该消息可以作为待处理的当前消息,当前消息可以为新增的实时消息,也可以为根据消息队列的顺序依次获取的消息。进一步地,可以获取当前消息并读取当前消息对应的消息类型,根据消息类型可以从预设消息类型配置中确定出是否存在与之匹配的优先级配置信息,如果是,则表示匹配结果非空,即,可以根据预设消息类型配置获取消息类型对应的优先级配置信息;如果否,则表示匹配结果为空,即,可以转发当前消息至下一消息处理装置/系统;进而,可以根据预设消息类型配置获取到与消息类型对应的优先级配置信息,根据该优先级配置信息可以确定出当前消息的优先级顺序。进一步地,可以将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字;或者,根据预设表达式(如,消息编号*5+优先级配置信息对应的字符串)计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字。进而,可以确定消息关键字对应的消息转发进程,该消息转发进程用于表征当前消息对应的业务的完成度,例如,该业务为“将商品A由地区A运输至地区B”,可以包括消息:从仓库中拣货、将商品A发出、商品A离开地区A、商品A到达地区B、商品已送达,当前消息为“将商品A发出”,消息关键字“10011”对应的消息转发进程为“2”(即,上述的确定表征消息转发进程的计数数值,在此处,计数数值为2),那么,可以表示该消息转发进程与当前消息相对应,即,当前消息可以进行转发。进而,还可以确定当前消息在优先级配置信息中的优先级等级,例如,当前消息为“将商品A发出”在该业务包括的消息中为第2个消息,那么可以理解为,当前消息的优先级等级为2,高于消息“商品A离开地区A”,低于消息“从仓库中拣货”。进而,可以计算计数数值与优先级等级之间的差值,例如,当前消息的优先级等级为2,消息转发进程为2,那么,计数数值与优先级等级之间的差值为0,如果该差值满足预置条件(如,差值应当为0),则将当前消息的消息状态确定为执行状态,并转发当前消息至下一业务处理装置/系统。如果该差值不满足预置条件,则将当前消息的消息状态确定为等待状态,并在消息等待队列中添加当前消息,并在消息状态由等待状态转换为执行状态时转发该当前消息。
可见,实施图2所示的消息状态确定方法,能够在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响;以及,能够通过对不同消息之间的优先级排序,便于后续根据排序结果对消息进行依次转发,减少不同业务之间的相互影响。
请参阅图3,图3示出了根据本公开一示例性实施例的用于执行消息状态确定方法的模块示意图。用于执行消息状态确定方法的模块可以包括消息接收模块301、消息过滤模块302、消息配置模块303以及消息计数模块304,其中:
消息接收模块301,用于接收实时消息并根据实时消息更新消息队列,以及从更新后的消息队列中确定出待处理的当前消息。
消息过滤模块302,用于获取当前消息并读取当前消息对应的消息类型,以及调用消息配置模块303中的预设消息类型配置与消息类型进行匹配;以及,根据预设消息类型配置获取消息类型对应的优先级配置信息;以及,根据预设消息类型配置获取消息类型对应的优先级配置信息;以及,转发当前消息。
消息配置模块303,用于供消息过滤模块302调用预设消息类型配置。
消息计数模块304,用于将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字;以及,根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字;以及,确定消息关键字对应的消息转发进程;以及,确定表征消息转发进程的计数数值以及当前消息在优先级配置信息中的优先级等级;以及,计算计数数值与优先级等级之间的差值;以及,将当前消息的消息状态确定为执行状态;以及,将当前消息的消息状态确定为等待状态;以及,更新消息转发进程。
可见,实施图3所示的用于执行消息状态确定方法的模块,能够在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响;以及,能够通过对不同消息之间的优先级排序,便于后续根据排序结果对消息进行依次转发,减少不同业务之间的相互影响。
请参阅图4,图4示出了根据本公开一示例性实施例的用于执行消息状态确定方法的模块应用示意图。与图3同理,在图4中,用于执行消息状态确定方法的模块包括消息接收模块401、消息过滤模块402、消息配置模块403以及消息计数模块404。具体地,消息接收模块401可以包括消息a-1-2 4011、消息a-1-1 4012、消息a-2-1 4013、消息a-2-24014、……、消息a-3-1 4015、消息a-3-3 4016以及消息a-3-2 4017;其中,消息a-1-2 4011的消息类型为A2,消息编号为1;消息a-1-1 4012的消息类型为A1,消息编号为1;消息a-2-14013的消息类型为A1,消息编号为2;消息a-2-2 4014的消息类型为A2,消息编号为2;消息a-3-1 4015的消息类型为Z1,消息编号为3;消息a-3-3 4016的消息类型为Z3,消息编号为3;消息a-3-2 4017的消息类型为Z2,消息编号为3。另外,需要说明的是,上述各消息在图4中对应的标号仅用于区分消息之间的不同,消息的重要性、优先级的属性与图4中标号的先后顺序无关。
消息过滤模块402中包括步骤S4021~步骤S4027,需要说明的是,本公开实施例不限定步骤S4021~步骤S4027中任意两个步骤之间的先后执行关系,并且步骤S4021~步骤S4027中任意两个步骤之间可以存在一个或多个步骤,本公开实施例也不作限定,其中:
步骤S4021:接收当前消息,确定当前消息的消息类型。
步骤S4022:判定消息类型是否存在,如果是,则执行步骤S4023;如果否,则执行步骤S4026。
步骤S4023:根据预设消息类型配置获取消息类型对应的优先级配置信息。
步骤S4024:确定表征消息转发进程的计数数值。
步骤S4025:向消息计数模块404发送计数更新指示,并执行步骤S4045。
步骤S4026:转发当前消息。
步骤S4027:输出用于表示异常的提示信息,待消息重试。
消息计数模块404中包括步骤S4041~步骤S4047,需要说明的是,本公开实施例不限定步骤S4041~步骤S4047中任意两个步骤之间的先后执行关系,并且步骤S4041~步骤S4047中任意两个步骤之间可以存在一个或多个步骤,本公开实施例也不作限定,其中:
步骤S4041:获取当前消息以及当前消息在优先级配置信息中的优先级等级。
步骤S4042:将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字。
步骤S4043:判定关键字是否存在,如果是,则执行步骤S4044;如果否,则执行步骤S4045。
步骤S4044:判定当前消息对应的表征消息转发进程的计数数值与优先级配置信息是否匹配,如果是,则执行步骤S4046;如果否,则执行步骤S4047。
步骤S4045:为表征消息转发进程的计数数值增加1。
步骤S4046:将当前消息的消息状态确定为执行状态。
步骤S4047:将当前消息的消息状态确定为等待状态。
具体地,消息接收模块401可以接收消息a-1-2 4011、消息a-1-1 4012、消息a-2-14013、消息a-2-2 4014、……、消息a-3-1 4015、消息a-3-3 4016以及消息a-3-2 4017。消息过滤模块402可以接收由消息接收模块401发送的当前消息(如,消息a-1-2 4011),并确定当前消息的消息类型;进而,可以判定该消息类型是否存在,若存在,则可以根据消息配置模块403中的预设消息类型配置4031获取该消息类型对应的优先级配置信息并确定表征消息转发进程的计数数值,该计数数值可以通过对计数器的检测获得;若不存在,则表示该当前消息与其他消息不存在优先级顺序,即,当前消息对应的业务有且仅有该当前消息,可以直接转发当前消息。消息计数模块404根据消息过滤模块中获取到的当前消息以及对应的优先级配置信息可以获取当前消息以及当前消息优先级配置信息中的优先级等级,并将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字,进而,可以判定该消息关键字是否存在,如果存在,则判定当前消息对应的表征消息转发进程的计数数值与优先级配置信息是否匹配,如果匹配,则将当前消息的消息状态确定为执行状态并执行步骤S4025,如果不匹配,则将当前消息的消息状态确定为等待状态并执行步骤S4027。如果不存在,则为表征消息转发进程的计数数值增加1,即,计数器加1。
另外,示例性的,转发的当前消息可以为按照优先级顺序排列的消息a-1-1 4012和消息a-1-2 4011,消息a-2-1 4013和消息a-2-2 4014,消息a-2-2 4014、消息a-3-2 4017和消息a-3-3 4016。
可见,实施图4所示的用于执行消息状态确定方法的模块应用示意图,能够在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响;以及,能够通过对不同消息之间的优先级排序,便于后续根据排序结果对消息进行依次转发,减少不同业务之间的相互影响。
请参阅图5,图5示出了根据本公开一示例性实施例的消息状态确定装置的结构框图。该消息状态确定装置包括消息类型确定单元501、优先级配置获取单元502、信息组合单元503以及消息状态确定单元504,其中:
消息类型确定单元501,用于确定当前消息的消息类型;
优先级配置获取单元502,用于根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序;
信息组合单元503,用于根据当前消息的消息编号和优先级配置信息生成消息关键字;
消息状态确定单元504,用于根据消息关键字和消息转发进程确定当前消息的消息状态,消息状态包括等待状态和执行状态。
可见,实施图5所示的消息状态确定装置,能够在一定程度上减少消息对于仓储系统或客户端的影响,提升多个消息之间的有序性,进而改善与消息相关的业务的执行效率以及减少对与该消息无关的其他业务的影响;以及,能够通过对不同消息之间的优先级排序,便于后续根据排序结果对消息进行依次转发,减少不同业务之间的相互影响。
作为一种示例性实施例,消息类型确定单元501确定当前消息的消息类型的方式具体可以为:
消息类型确定单元501接收实时消息并根据实时消息更新消息队列;
消息类型确定单元501从更新后的消息队列中确定出待处理的当前消息;
消息类型确定单元501获取当前消息并读取当前消息对应的消息类型。
可见,实施该示例性实施例,能够通过对消息队列的不断更新,提升对于业务的执行效率。
作为另一种示例性实施例,上述装置还可以包括消息类型匹配单元(未图示)和消息转发单元(未图示),其中:
消息类型匹配单元,用于在优先级配置获取单元502根据预设消息类型配置获取消息类型对应的优先级配置信息之前,将预设消息类型配置与消息类型进行匹配;
优先级配置获取单元,具体用于在匹配结果非空时,根据预设消息类型配置获取消息类型对应的优先级配置信息;
消息转发单元,用于在匹配结果为空时,转发当前消息。
可见,实施该示例性实施例,能够根据优先级配置信息对当前消息进行区分,将无优先级配置信息的当前消息及时输出,提升对于业务的处理效率。
作为又一种示例性实施例,信息组合单元503根据当前消息的消息编号和优先级配置信息生成消息关键字的方式具体可以为:
信息组合单元503将当前消息的消息编号和优先级配置信息进行拼接,并将拼接结果确定为消息关键字;或者,
信息组合单元503根据预设表达式计算当前消息的消息编号和优先级配置信息对应的字符串,作为消息关键字。
可见,实施该示例性实施例,通过拼接的方式确定消息关键字的效率更高,通过预设表达式确定消息关键字能够一定程度上保证消息关键字的唯一性,使得一个业务对应一个消息关键字,减少不同业务之间的相互影响。
作为又一种示例性实施例,消息状态确定单元504根据消息关键字和消息转发进程确定当前消息的消息状态的方式具体可以为:
消息状态确定单元504确定消息关键字对应的消息转发进程,并根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态。
可见,实施该示例性实施例,能够通过消息转发进程确定是否应当转发当前消息,以提升业务对应的多个消息之间的有序性,减少不同业务之间的相互影响。
作为又一种示例性实施例,消息状态确定单元504根据消息转发进程与优先级配置信息的匹配程度确定当前消息的消息状态的方式具体可以为:
消息状态确定单元504确定表征消息转发进程的计数数值以及当前消息在优先级配置信息中的优先级等级;
消息状态确定单元504计算计数数值与优先级等级之间的差值;
若差值符合预置条件,消息状态确定单元504将当前消息的消息状态确定为执行状态;若差值不符合预置条件,消息状态确定单元504将当前消息的消息状态确定为等待状态。
可见,实施该示例性实施例,能够通过预置条件确定当前消息的消息状态,进而根据消息状态处理当前消息,以提升业务对应的多个消息之间的有序性。
作为又一种示例性实施例,上述装置还可以包括以下消息转发进程更新单元(未图示)和消息队列更新单元(未图示),其中:
消息转发单元,还用于在消息状态确定单元504根据消息关键字和消息转发进程确定当前消息的消息状态之后,以及在消息状态为执行状态时,转发当前消息;
消息转发进程更新单元,用于更新消息转发进程;
消息队列更新单元,用于在消息状态为等待状态时,在消息等待队列中添加当前消息,并在消息状态由等待状态转换为执行状态时转发当前消息。
可见,实施该示例性实施例,能够通过增加多个消息之间的有序性,减少不同业务之间的相互影响,进而提升对于业务的处理效率。
由于本公开的示例实施例的消息状态确定装置的各个功能模块与上述消息状态确定方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的消息状态确定方法的实施例。
请参阅图6,图6示出了适于用来实现本公开一示例性实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备的计算机系统600仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的消息状态确定方法。
例如,所述的电子设备可以实现如图1中所示的:步骤S110:确定当前消息的消息类型,并根据预设消息类型配置获取消息类型对应的优先级配置信息;其中,优先级配置信息用于表征不同消息类型对应的消息的转发顺序;步骤S120:根据当前消息的消息编号和优先级配置信息生成消息关键字;步骤S130:根据消息关键字和消息转发进程确定当前消息的消息状态,消息状态包括等待状态和执行状态。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开的实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开的实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
- 消息状态确定方法、装置、计算机可读介质及电子设备
- 消息读取状态的确定方法、装置、电子设备及存储介质