发明内容
鉴于上述问题,本发明提出了一种产品交易的推进方法、服务器及系统,解决了现有监控方法存在的处理能力有限,效率低下且无法利用分布式服务器系统的处理能力问题。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供一种产品交易的推进方法,该方法包括:
接收到产品交易推进触发信息的第一服务器,根据存储产品交易记录的分库分表对应地发送一级消息进行产品交易的推进,所述一级消息中包括交易产品信息和分库分表信息;
接收到所述一级消息的第二服务器,根据所述一级消息中分库分表信息对应的产品交易订单对应地发送二级消息进行产品交易的推进,所述二级消息中包括产品交易订单信息;
接收到所述二级消息的第三服务器,根据所述二级消息中的产品交易订单信息获取对应的产品交易数据,并将交易成功的产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中;
第四服务器汇总所述产品交易控制表中的所述产品交易数据,完成产品交易的推进;
其中,所述第一服务器、第二服务器、第三服务器及第四服务器为分布式服务器中的任意一台服务器。
另一方面,本发明提供一种产品交易的推进服务器,该服务器包括:
用于接收一级消息,所述一级消息为第一服务器在接收到产品交易推进触发信息后根据存储产品交易记录的分库分表对应地发送的进行产品交易的推进的消息,所述一级消息中包括交易产品信息和分库分表信息;
第一发送单元,用于根据所述一级消息中分库分表信息对应的产品交易订单对应地发送二级消息进行产品交易的推进,所述二级消息中包括产品交易订单信息,以便接收到所述二级消息的第三服务器,根据所述二级消息中的产品交易订单信息获取对应的产品交易数据,并将交易成功的产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中,并由第四服务器汇总所述产品交易控制表中的所述产品交易数据,完成产品交易的推进,其中,所述服务器、第一服务器、第三服务器及第四服务器为分布式服务器中的任意一台服务器。
另一方面,本发明提供一种产品交易的推进系统,该系统包括多个上述产品交易的推进服务器,以使所述产品交易的推进系统具有第一服务器、第二服务器、第三服务器以及第四服务器的处理功能;
其中,第一服务器用于接收产品交易推进触发信息,根据存储产品交易记录的分库分表对应地发送一级消息进行产品交易的推进,所述一级消息中包括交易产品信息和分库分表信息;
第二服务器用于接收所述一级消息,根据所述一级消息中分库分表信息对应的产品交易订单对应的发送二级消息进行产品交易的推进,所述二级消息中包括产品交易订单信息;
第三服务器用于接收所述二级消息,根据所述二级消息中的产品交易订单信息获取对应的产品交易数据,并将交易成功的产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中;
第四服务器用于汇总所述产品交易控制表中的所述产品交易数据,完成产品交易的推进。
借由上述技术方案,本发明提供的一种产品交易的推进方法、服务器及系统,通过对产品交易的推进任务进行多层拆分,并将拆分后的任务分发到分布式服务器系统中,多台服务器共同进行处理,并将各个服务器处理得到的结果汇总至数据库中的一个单表中,再由该单表的汇总结果确定该产品的交易推进状态。相对于现有的单机、单线程的推进方法,本发明利用了分布式服务器系统的处理能力,将任务分发到多台服务器中同时进行处理,大幅提高了推进任务的处理能力,再将数据结果通过单表进行汇总处理,又减少了分布式系统数据汇总所需的时间,从而整体上提升了任务推进的处理效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种产品交易的推进方法,该方法应用于具有分布式服务器系统的交易平台中,在执行产品交易的推进任务过程中,可以由多台服务器共同配合执行完成,根据服务器所执行任务的不同功能进行划分,可以分为以下四个部分,如图1所示,该方法包括:
101、接收到产品交易推进触发信息的第一服务器,根据存储该产品交易记录的分库分表对应地发送一级消息进行产品交易的推进。
该部分的功能由第一服务器执行,其中,第一服务器为分布式服务器系统中的任意一台服务器。在第一服务器接收到产品交易推进的触发信息后,将生成一个产品交易的推进任务,用于统计核对该产品的销售状态。其中,产品交易推进的触发信息,是在产品结束销售后所生成并发送到分布式服务器系统中的信息,主要包括产品下架信息和产品售罄信息。对于一款产品而言,其销售结束的两种情况包括产品销售的期限到达或者是产品已经销售完成。前者用产品下架信息表示,后者以产品售罄信息表示。
第一服务器根据触发的产品交易推进任务获取分布式服务器系统中用于存储该产品交易记录的分库分表,根据分库分表的数量向分布式服务器系统中分发相同数量的一级消息。也就是说,第一服务器发送一级消息的数量是对应于分库分表的数量,数据库中存在一个存储该产品交易记录的分库分表,第一服务器就会发送对应该分库分表的一条一级消息。其中,该一级消息中包括交易产品信息和分库分表信息,交易产品信息用于标识该消息所隶属的产品,而分库分表信息用于记录该消息所对应分库分表的位置。第一服务器在产品交易的推进任务中,主要用于将该任务拆分成多个可并行执行的推进任务,以一级消息的形式分发到分布式服务器系统中,由接收到一级消息的第二服务器执行后续的产品交易推进任务。需要说明的是,在实际应用中,第一服务器与第二服务器只是用于区分所执行的任务功能,而并非是两台独立的服务器,也可以由一台服务器具有两者的功能,例如,在发送产品1的多条一级消息的同时接收产品2的一级消息进行处理,或者在发送产品1的多条一级消息后接收产品1的一级消息进行处理。
进一步的,第一服务器获取分布式服务器系统中用于存储该产品交易记录的分库分表的目的在于获取分库分表的标识信息以及统计分库分表的数量,以便于发送同等数量的一级消息,并在一级消息中标注出分库分表的标识信息,使该产品交易推进任务的每一条一级消息都对应一个不同的分库分表。
进一步的,第一服务器在接收到产品交易推进触发信息之后,还可以通过判断该产品的交易总数量来决定是否需要执行后续的产品交易推进任务,其中,交易的数量可以是产品交易的单位个数,也可以是产品交易的金额。只有在产品的交易总数量达到一个预定数量时,第一服务器才执行产品交易推进任务,获取分布式系统中存储所述产品交易记录的分库分表的标识信息和数量。而预定数量是在产品进行销售前,预先设定的销售数量。
进一步的,第一服务器在接收到产品交易推进触发信息之后,还将生成该产品交易推进状态记录,并将该推进状态记录存储在产品交易推进表中。其中,产品交易推进表是记录在数据库中的一张用于统计交易平台中所有需要进行产品推进任务的单表,交易平台中所有销售结束的产品并且启动推进任务后都会在该表中记录有一条推进状态记录。在产品交易推进表中所记录的内容包括:交易产品信息、目标推进状态和当前推进状态。而表中的产品交易推进状态记录内容包括:交易产品信息、目标推进状态为成功、当前推进状态为推进中。目标推进状态用于表示产品是否处在执行推进任务中,当前推进状态用于展示产品当前执行推进任务的结果。
102、接收到一级消息的第二服务器,根据该一级消息中分库分表信息对应的产品交易订单对应地发送二级消息进行产品交易的推进。
该部分由第二服务器执行,第二服务器接收第一服务器发送的一级消息,利用一级消息中记录的分库分表查找对应的产品交易订单,根据产品交易订单数量向分布式服务器系统中分发相同数量的二级消息进行产品交易的推进。也就是说,第二服务器发送二级消息的数量是对应于分库分表中记录的产品交易订单的数量,该分库分表中存在一条产品交易订单,第二服务器就会发送对应该产品交易订单的一条二级级消息。其中,二级消息中包括产品交易订单信息。第二服务器在产品交易的推进任务中,主要用于根据接收到的一级消息对推进任务进行进一步的拆分,将一条一级消息再分为多条二级消息分发到分布式服务器系统中,由接收到二级消息的第三服务器执行后续的产品交易推进任务。这里需要说明的是,在实际应用中,第二服务器与第三服务器也只是用于区分所执行的任务功能,而并非是两台独立的服务器,也可以由一台服务器完成两者的功能。例如,在发送产品1的多条二级消息的同时接收产品2的二级消息进行处理,或者在发送产品1的多条二级消息后接收产品1的二级消息进行处理。
进一步的,第二服务器利用一级消息中记录的分库分表查找对应的产品交易订单时,是先根据一级消息中的分库分表的信息查找数据中对应的分库分表,再根据一级消息中的交易产品信息获取该分库分表中含有与该交易产品信息对应的产品交易订单信息。根据产品交易订单数量,发送对应数量的二级消息,而每一条二级消息中都记录有不同的产品交易订单信息。
103、接收到二级消息的第三服务器,根据该二级消息中的产品交易订单信息获取对应的产品交易数据,并将交易成功的产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中。
该部分由第三服务器执行,第三服务器接收第二服务器发送的二级消息,利用二级消息中的产品交易订单信息获取对应的产品交易数据,并将交易成功的产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中。其中,产品交易控制表用于记录交易平台中经过第三服务器推进的所有产品的交易记录,每一条记录中都记录有交易产品信息、产品交易订单信息以及交易数据。该表可以展示出不同产品经过推进任务后得到的推进成功的交易记录,经过汇总就可以得到一款产品的汇总交易数据。第三服务器在产品交易的推进任务中,主要用于获取产品交易数据,向产品交易控制表记录交易数据。产品交易控制表记录有第三服务器发送的多条产品的交易数据。
进一步的,第三服务器利用二级消息中的产品交易订单信息获取对应的产品交易数据时,是根据二级消息中的产品交易订单信息获取对应的产品交易记录,其中,交易记录包括交易数据和交易状态,而交易状态用于表示交易订单是否交易成功,交易成功一般是指存在实际的成交金额,因为在一些情况下,如用户提交了订单但未付款,或者是用户在付款过程中出现了操作问题导致无法付款等,这些情况将导致该订单存在订单号,而对应的交易金额确不存在。因此,一个交易成功的订单,应该是具有实际交易金额的订单。根据所得到的交易记录再获取其中交易状态为成功的产品交易订单以及该订单中对应的交易数据。最后,将得到的交易产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中。
上述步骤中,一级消息和二级消息的发送与接收均是在分布式服务器系统中完成的,第一服务器发送的以及消息与第二服务器发送的二级消息通过消息广播发送至分布式服务器系统中,由该系统中的负载均衡设备为每一条一级消息或二级消息匹配接收一级消息的第二服务器以及接收二级消息的第三服务器。其中,负载均衡设备是根据分布式服务器系统中各服务器当前的处理状态来决定接收消息的服务器,由于负载均衡技术在实际应用中已经非常广泛,因此,本发明实施例对该技术的具体实现不做限制。
进一步地,本发明实施例在实现分布式服务器系统中的消息传递方式还可以采用消息中间件进行消息的传递。消息中间件(message orientedmiddleware)是指支持与保障分布式应用程序之间同步/异步收发消息的中间件。消息是分布式应用之间进行数据交换的基本信息单位,分布式应用程序之间的通信接口由消息中间件提供。其中,异步方式指消息发送方在发送消息时不必知道接收方的状态,更无需等待接收方的回复,而接收方在收到消息时也不必知道发送方的目前状态,更无需进行同步的消息处理,它们之间的连接完全是松耦合的,通信是非阻塞的,这种异步通信方式是由消息中间件中的消息队列及其服务机制保障的。一般地,实时性要求较高的业务采用同步方式处理,实时性要求不高的业务采用异步方式进行处理。消息中间件的基本工作原理为:在消息发送方,消息发送者调用发送消息的API函数,将需要发送的消息经消息队列服务存储到发送消息队列中;通过双方消息传递服务之间的交互,经消息队列服务将需要发送的消息从发送队列取出,并送到接收方;接收方再经它的消息队列服务将接收到的消息存放到它的接收消息队列中;在消息接收方,消息接收者调用接收消息的API函数,同样经过消息队列服务,将需要的消息从接收队列中取出,并进行处理。
通过消息中间件发送与接收的一级消息或二级消息同样可以通过负载均衡设备将分布式服务器系统中的服务器进行分组转发消息,从而降低服务器的处理压力。
104、第四服务器汇总产品交易控制表中的产品交易数据,完成产品交易的推进。
第四服务器用于将产品交易控制表中同一产品的产品交易数据进行汇总,以完成一款产品的产品交易推进任务。第四服务器在执行过程中与上述的第一服务器、第二服务器、第三服务器均不存在数据交互,因此,第四服务器的功能可以与第一服务器、第二服务器或第三服务器的功能共同设置在一台服务器中,也可以单独设置一台汇总数据的服务器。
进一步的,第四服务器在汇总产品交易控制表中的产品交易数据时,还可以设置定时器,预置汇总产品交易数据的触发条件,按照预置的时间间隔定期汇总产品交易控制表中同一产品的交易数据。由于产品交易控制表中同一产品的交易数据是由多台第三服务器根据二级消息将不同交易订单的交易数据记录到该表中的,在记录的时间上有可能存在一定的时间差,这就导致了在一个汇总周期内得不到所有交易订单的交易数据,造成汇总结果的失真。因此,在汇总一次产品交易控制表中所述产品的交易数据后,第四服务器将检测汇总得到的交易数据是否与交易总数据相等,该交易总数据为产品销售结束时(即启动产品交易推进任务时)得到的累计产品交易数据。若相等,则说明执行该产品交易推进任务的第三服务器都已经处理完成,可以结束该产品交易的推进。若不相等,说明执行该产品交易推进任务的第三服务器有可能还在处理中,则需要按照定时器设置的时间周期等待下一次汇总产品交易数据,直至汇总交易数据与交易总数据相等后完成产品交易的推进。
进一步的,当产品的汇总交易数据经过长时间汇总始终无法与交易总数据匹配时,则有可能是产品交易的推进过程出错。此时,就需要为产品交易的推进过程设置一个时间期限,若在该期限内产品交易的推进始终没有完成,则由第四服务器输出报错提示信息,以便数据维护人员进行纠错。
进一步的,产品在完成产品交易的推进后,由第四服务器将产品交易推进表中该产品对应的当前推进状态由推进中修改为成功。
以上的四部分是分别以四个服务器为执行主体介绍的产品交易的推进方法,而在实际的应用过程中,这四个服务器的功能完全可以集成在同一台服务器中,由该服务器完成产品交易的推进。但这样就存在单台服务器处理资源有限,处理效率低,无法利用分布式服务器系统的处理资源。因此,本发明实施例的分布式服务器系统中的每一台服务器都应至少具有上述四个服务器中的一个服务器所具有的处理功能,且整个分布式服务器系统要拥有上述四个服务器所具有的所有处理功能。通过对推进任务的拆分并分发至系统中的多个服务器共同执行来提高推进任务的处理效率。
结合上述的实现方式可以看出,本发明实施例采用的一种产品交易的推进方法,是通过对产品交易的推进任务进行多层拆分,并将拆分后的任务分发到分布式服务器系统的不同服务器中进行处理,并将各个服务器处理得到的结果汇总至数据库中的一个单表中,再由该单表的汇总结果来确定该产品的交易推进状态。相对于现有的单机、单线程的推进方法,本发明利用了分布式服务器系统的处理能力,将任务分发到多台服务器中同时进行处理,大幅提高了推进任务的处理能力,再通过将数据结果通过单表进行汇总处理,又减少了分布式数据汇总所需的时间,从而整体上提升了任务推进的处理效率。
以上是对本发明实施例提出的产品交易的推进方法中所涉及到的各部分的具体说明,为了更加详细清楚地说明本发明实施例在实践中的具体应用,下面以本发明实施例应用于一款借款类产品A的资金募集推进过程作为具体的说明:
首先,需要说明的是借款类产品的一般交易过程,是由资金需求方在平台中公布一款资金募集类的借款产品,公布该产品的资金使用回报率等信息,设定借款的总金额,包括产品销售成功的最低金额和最高限额(一般这两个金额与总金额相同)。再由该平台中的用户进行公开认购,当认购总金额达到总金额或最低金额时,确认该产品销售完成,并启动该产品在平台内的募集推进流程,以核实该产品销售的结果。
本发明实施例中的销售平台所采用的是分布式服务器系统的处理框架,由分布式服务器中的一台服务器A接收产品A的销售完成通知,并由服务器A获取该产品A的销售金额,判断其是否达到最低金额,若达到则获取该平台数据库中用于存储该产品A交易数据的分库分表数量,根据该数量向分布式服务器系统中分发相同数量的一级消息,并且向数据库中的产品交易推进表中记录一条产品交易的推进状态记录。其中,一级消息和产品交易的推进状态记录的示例如下表:
一级消息示例:
产品交易推进表中的一条推进状态记录示例:
产品标识 |
目标推进状态 |
当前推进状态 |
A |
SUCCESS |
INIT |
其次,由分布式服务器系统中的一台服务器B接收服务器A发送的一条一级消息,其中,服务器A与服务器B不限定是系统中的不同服务器。由服务器B根据一级消息中的分表位和产品标识的信息,在数据库中对应的00分库分表内查找产品A的交易记录,当00分库分表中存在产品A的交易记录时,服务器B将根据交易记录的条数向分布式服务器系统发送对应数量的二级消息。其中,二级消息示例如下表:
第三,由分布式服务器系统中的一台服务器C接收服务器B发送的一条二级消息,其中,服务器C与服务器B,服务器C与服务器A均不限定是系统中的不同服务器。也就是说,服务器A、服务器B与服务器C可以是一台具有多个功能的服务器,也可以是不同的单独服务器,还可以是一台服务器具有其中任意两台的功能。服务器C将根据接收到的二级消息中的订单号123,在数据库的00分库分表中查找订单号123,并获取该订单号123所对应的产品A的交易数据。再根据该交易数据判断该订单的交易是否成功,即判断该订单中是否存在实际交易金额,存在则证明该交易为成功交易。之后,服务器C将交易成功的订单的交易数据以及该订单的订单号、产品标识以一条记录的形式存储在产品交易控制表中。其中,产品交易控制表中的记录示例如下表:
最后,由服务器D进行产品A的交易推进任务的汇总计算。服务器D根据定时器触发的定时汇总信息,汇总产品交易控制表中关于产品A的所有交易数据,得到产品A的汇总交易数据,判断该汇总交易数据与数据库中的已售数据进行比较,若相等则将产品交易推进表中当前推进状态由推进中(INIT)更新为推进成功(SUCCESS),完成产品A的推进流程。若不相等,则等待定时器预置的时间间隔,由定时器再次触发对产品A的汇总信息,判断该此的汇总交易数据是否与已售数据相等,如此循环,直至汇总交易数据与已售数据相等为止。
需要说明的是,服务器D为分布式服务器系统中的一台,服务器D与上述的服务器A、服务器B和服务器C在数据处理过程中没有直接的数据交互,因此,服务器D可以是上述中的任意一台服务器。而在实际应用过程中,服务器D一般为指定的服务器。由此可见,本发明实施例中,分布式服务器系统中的任意一台服务器均应具备上述服务器A、服务器B、服务器C以及服务器D中至少一个服务器的功能,最优为具有所有上述服务器的功能,而服务器D则可由系统指定一台服务器执行最终的交易数据汇总任务。
针对上述实施例中所述的产品交易的推进方法,其基本原理如图2所示,图中的触发模块用于根据产品销售结束信息触发产品交易推进触发信息,将该触发信息发送至第一服务器,由第一服务器发送一级消息到分布式服务器系统的消息中间件中,由消息中间件将一级消息分配给接收一级消息的第二服务器,即图中的一级消费者。一级消费者获取数据库中的分库分表的相关信息后,根据分库分表中的产品交易订单信息向第三服务器发送二级消息,其中,第三服务器为图中的二级消费者。二级消费根据二级消息获取分库分表中对应产品交易订单的产品交易数据,并将该产品交易数据以及产品的相关信息一同记录到产品交易控制表中。图中的单表所表示的内容包括产品交易控制表和产品交易推进表。产品交易控制表用于记录第三服务器所记录的产品交易数据,而产品交易推进表则用于记录产品的推进状态。产品交易推进表中的产品推进状态记录是在第一服务器接收到触发模块触发的产品交易推进触发信息后记录在该表中的。此外,图中的定时模块为上述实施例中第四服务器,通过定时器触发汇总产品交易控制表中相同产品的交易数据,根据汇总的交易数据判断该产品的推进流程是否完成,若完成就在产品交易推进表中修改该产品的推进状态,否则等待定时器再次触发汇总产品交易数据的指令信息。
进一步的,作为对上述方法的实现,本发明实施例提供了一种产品交易的推进服务器,该服务器为分布式服务器系统中的一台,具有上述方法中第一服务器、第二服务器、第三服务器或第四服务器中至少一台服务器所具有的处理功能。该服务器如图3所示,具体包括:
第一接收单元301,用于接收一级消息,所述一级消息为第一服务器在接收到产品交易推进触发信息后根据存储产品交易记录的分库分表对应地发送的进行产品交易的推进的消息,所述一级消息中包括交易产品信息和分库分表信息;
第一发送单元302,用于根据所述一级消息中分库分表信息对应的产品交易订单对应地发送二级消息进行产品交易的推进,所述二级消息中包括产品交易订单信息,以便接收到所述二级消息的第三服务器,根据所述二级消息中的产品交易订单信息获取对应的产品交易数据,并将交易成功的产品信息、产品交易订单信息以及交易数据存储到产品交易控制表中,并由第四服务器汇总所述产品交易控制表中的所述产品交易数据,完成产品交易的推进,其中,所述服务器、第一服务器、第三服务器及第四服务器为分布式服务器中的任意一台服务器。
进一步的,如图4所示,所述服务器具有第二服务器所述处理功能,所述服务器还包括:
第一获取单元303,用于根据所述第一接收单元301接收的一级消息中的分库分表的信息获取对应的分库分表;
所述第一获取单元303还用于,根据所述一级消息中所述交易产品信息获取所述分库分表中包含的与所述交易产品信息对应的产品交易订单信息;
所述第一发送单元302还用于,根据产品交易订单的数量将所述分库分表中的每一条交易订单对应发送一条所述二级消息。
进一步的,如图5所示,所述服务器在具有第二服务器功能的基础上添加了第一服务器的处理功能,所述服务器还包括:
第二接收单元304,用于当所述服务器接收到产品交易推进触发信息时,接收产品交易推进触发信息;
第二发送单元305,用于根据存储产品交易记录的分库分表对应地发送一级消息进行产品交易的推进。
进一步的,如图5所示,所述服务器还包括:
第二获取单元306,用于获取分布式系统中存储所述产品交易记录的分库分表的标识信息和数量;
所述第二发送单元305还用于,发送与所述第二获取单元306获取的分库分表的数量对应数量的一级消息,每条所述一级消息中包括交易产品信息和不同的分库分表的标识信息。
进一步的,如图5所示,所述服务器还包括:
判断单元307,用于在所述第二接收单元304接收到产品交易推进触发信息之后,判断所述产品的交易总数量是否达到预定数量;
所述第二获取单元306还用于,当所述判断单元307判断达到预定数量时,获取分布式系统中存储所述产品交易记录的分库分表的标识信息和数量。
进一步的,如图6所示,当接收到二级消息时,所述服务器在具有第二服务器和第一服务器的功能基础上添加了第三服务器的处理功能,所述服务器还包括:
第三接收单元308,用于接收二级消息;
第三获取单元309,用于根据所述第三接收单元308接收的二级消息中的产品交易订单信息获取对应的产品交易数据;
第一存储单元310,用于将交易成功的产品信息、所述第三获取单元获取的产品交易订单信息以及交易数据存储到产品交易控制表中。
进一步的,如图6所示,所述第三获取单元309包括:
第一获取模块3091,用于根据所述二级消息中的产品交易订单信息获取对应的产品交易记录,所述产品交易记录中包括交易数据和交易状态,所述交易状态包括成功或失败;
第二获取模块3092,用于从所述第一获取模块3091获取的交易记录中获取交易状态为成功的所述产品交易订单以及该订单中对应的交易数据。
进一步的,如图7所示,所述服务器在具有第一服务器、第二服务器和第三服务器的功能基础上添加了第四服务器的处理功能,所述服务器还包括:
汇总单元311,用于汇总所述产品交易控制表中的所述产品交易数据,完成产品交易的推进。
进一步的,如图7所示,所述汇总单元311包括:
汇总模块3111,用于按照预置时间间隔,定期汇总所述产品交易控制表中所述产品的交易数据;
检测模块3112,用于检测所述汇总模块3111汇总得到的交易数据是否与交易总数据相等,若相等,则完成产品交易的推进;
所述汇总模块3111还用于,当所述检测模块的检测结果不等时,按照预定周期继续执行定期汇总直到完成产品交易的推进。
进一步的,如图7所示,所述服务器还包括:
第二存储单元312,用于在所述第二接收单元304接收到产品交易推进触发信息后,生成所述产品交易推进状态记录,并将所述推进状态记录存储在产品交易推进表中,所述产品交易推进表中包括交易产品信息、目标推进状态和当前推进状态;所述交易推进状态记录包括交易产品信息、目标推进状态为成功、当前推进状态为推进中;
修改单元313,用于在所述汇总单元311完成产品交易的推进后,将所述产品交易推进表中所述交易产品信息对应的当前推进状态由推进中修改为成功。
进一步的,如图7所示,所述服务器还包括:
消息转发单元314,用于利用消息中间件在分布式服务器系统中转发所述第二发送单元305发送的一级消息和所述第一发送单元302发送的二级消息。
进一步的,本发明实施例还提供了一种产品交易的推进系统,该系统为分布式服务器系统,系统具有多台上述产品交易的推进服务器。其中,最优方案是系统中的每一台服务器都同时具有上述产品交易的推进方法中所述的第一服务器、第二服务器、第三服务器和第四服务器的处理功能,其中,各个服务器所具有的处理功能可参考上述图1所示的产品交易的推进方法中对四种服务器处理功能的具体描述,此处不再赘述。在该系统中的服务器无法每台都同时具有上述四种服务器的处理功能时,也应保证系统中存在上述四种服务器的处理功能的服务器,也就是说上述四种服务器的处理功能在该系统中缺一不可。
综上所述,本发明实施例所采用的产品交易的推进方法、服务器及系统,通过对产品交易的推进任务进行多层拆分,并将拆分后的任务分发到分布式服务器系统中,多台服务器共同进行处理,并将各个服务器处理得到的结果汇总至数据库中的一个单表中,再由该单表的汇总结果确定该产品的交易推进状态。相对于现有的单机、单线程的推进方法,本发明利用了分布式服务器系统的处理能力,将任务分发到多台服务器中同时进行处理,大幅提高了推进任务的处理能力,再将数据结果通过单表进行汇总处理,又减少了分布式系统数据汇总所需的时间,从而整体上提升了任务推进的处理效率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。