发明内容
本申请实施例提供一种业务触发方法以及用于业务触发的超时处理模块,以及时触发目标业务,避免目标业务无法及时触发导致的问题。
本申请实施例提供一种业务触发方法,所述方法包括以下步骤:
超时处理模块接收来自业务服务器的业务超时触发消息,其中,所述业务超时触发消息中至少携带了目标业务对应的任务调度时间;
如果所述任务调度时间小于当前时间或者等于当前时间,则所述超时处理模块确定目标业务,并在当前时间触发所述目标业务。
所述业务超时触发消息中还携带目标业务或源业务的信息,所述超时处理模块确定目标业务,具体包括:
当所述业务超时触发消息中携带了目标业务的信息时,所述超时处理模块直接从所述业务超时触发消息中解析出所述目标业务;或者,当所述业务超时触发消息中携带了源业务的信息时,所述超时处理模块从所述业务超时触发消息中解析出源业务,并通过查询业务配置表得到所述源业务对应的目标业务;其中,所述业务配置表用于记录源业务与目标业务之间的对应关系。
所述方法进一步包括:
当所述业务超时触发消息中没有携带目标业务的信息以及源业务的信息时,所述超时处理模块输出异常报警信息;或者,当所述业务配置表中没有记录所述源业务对应的目标业务时,所述超时处理模块输出异常报警信息。
所述方法进一步包括:
如果所述任务调度时间大于当前时间,则所述超时处理模块确定目标业务,并将所述任务调度时间以及对应的目标业务存储到超时处理表中;
所述超时处理模块定时获取所述超时处理表中存储的任务调度时间,并在任务调度时间等于当前时间时,触发所述任务调度时间对应的目标业务。
所述超时处理模块集成在所述业务服务器上。
本申请实施例提供一种用于业务触发的超时处理模块,超时处理模块包括:接收单元,用于接收来自业务服务器的业务超时触发消息,其中,所述业务超时触发消息中至少携带了目标业务对应的任务调度时间;
确定单元,用于在所述任务调度时间小于当前时间或者等于当前时间时,确定目标业务,并在所述当前时间触发所述目标业务。
所述业务超时触发消息中还携带目标业务的信息或者源业务的信息;
所述确定单元,具体用于当所述业务超时触发消息中携带了目标业务的信息时,直接从所述业务超时触发消息中解析出所述目标业务;或者,当所述业务超时触发消息中携带了源业务的信息时,从所述业务超时触发消息中解析出源业务,并通过查询业务配置表得到所述源业务对应的目标业务;其中,所述业务配置表用于记录源业务与目标业务之间的对应关系。
还包括:输出单元,用于当所述业务超时触发消息中没有携带目标业务的信息以及源业务的信息时,输出异常报警信息;或者,当所述业务配置表中没有记录所述源业务对应的目标业务时,输出异常报警信息。
所述确定单元,还用于在所述任务调度时间大于当前时间时,确定目标业务,并将所述任务调度时间以及对应的目标业务存储到超时处理表中;
以及,定时获取所述超时处理表中存储的任务调度时间,并在任务调度时间等于当前时间时,触发所述任务调度时间对应的目标业务。
所述超时处理模块集成在所述业务服务器上。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,通过将超时处理模块集成在业务服务器上,并通过超时处理模块触发目标业务,从而及时触发目标业务,避免目标业务无法及时触发导致的问题,真正解决0秒超时延时的问题,即在规定的任务调度时间触发目标业务。进一步的,通过将具有超时服务器功能的超时处理模块集成在业务服务器上,使得业务服务器发送的业务超时触发消息能够直接发送到本业务服务器的超时处理模块上,而不再由超时服务器接收来自不同业务服务器的通知消息。基于此,超时处理模块能够及时收到业务超时触发消息,继而能够及时触发目标业务。由于一个业务服务器产生的业务超时触发消息有限,因此超时处理模块能够及时解析业务超时触发消息,并能够及时触发目标业务。由于在某一时间点触发的目标业务数量有限,因此超时处理模块能够及时触发目标业务。
实施例一
针对现有技术中存在的问题,本申请实施例一提供一种业务触发方法,该方法应用于包括超时处理模块、业务服务器和超时服务器的网络中。以图1为本申请实施例的应用场景示意图,超时处理模块可以集成在业务服务器上。
本申请实施例中,需要在业务服务器上配置超时处理模块。为了在业务服务器上配置超时处理模块,在一种具体实现方式中,超时服务器将具有超时服务器功能的jar包服务通知给业务服务器,该jar包服务用于执行超时处理的相关功能。业务服务器在收到jar包服务之后,在本业务服务器上执行该jar包服务,从而在本业务服务器上生成具有超时服务器功能的超时处理模块。在后续处理过程中,由超时处理模块执行超时处理的相关功能,而业务服务器不会感知超时处理的相关过程,业务服务器仍然认为其与超时服务器进行交互,但实际上由超时处理模块代替超时服务器与业务服务器进行交互。
在上述应用场景下,如图2所示,该业务触发方法可以包括以下步骤:
步骤201,业务服务器向超时处理模块发送业务超时触发消息。其中,该业务超时触发消息中至少携带了目标业务对应的任务调度时间。
本申请实施例中,在用户完成源业务之后,如果用户需要在特定时间(即目标业务对应的任务调度时间)内完成目标业务,则业务服务器向超时处理模块发送业务超时触发消息,该业务超时触发消息中携带了任务调度时间。
例如,用户在创建交易之后,如果用户需要在15分钟内完成付款,则在当前时间为2014-7-8日12:00时,业务超时触发消息中携带的目标业务对应的任务调度时间为2014-7-8日12:15。又例如,用户在付款之后,如果用户需要在7天内确认收货,则在当前时间为2014-7-8日12:00时,业务超时触发消息中携带的目标业务对应的任务调度时间为2014-7-15日12:00。
步骤202,超时处理模块接收来自业务服务器的业务超时触发消息。其中,该业务超时触发消息中至少携带了目标业务对应的任务调度时间。
步骤203,超时处理模块判断业务超时触发消息中携带的任务调度时间是否小于或等于当前时间;如果任务调度时间小于当前时间或者等于当前时间,则执行步骤204;如果任务调度时间大于当前时间,则执行步骤205。
例如,假设超时处理模块执行本步骤203的当前时间为2014-7-8日12:15,则:在业务超时触发消息中携带的任务调度时间为2014-7-8日12:15时,任务调度时间等于当前时间,执行步骤204;在业务超时触发消息中携带的任务调度时间为2014-7-15日12:00时,任务调度时间大于当前时间,执行步骤205。
步骤204,超时处理模块确定目标业务,并在当前时间触发目标业务。
本申请实施例中,业务超时触发消息中还可以携带目标业务的信息或者源业务的信息。基于此,超时处理模块确定目标业务的过程,具体包括但不限于:当业务超时触发消息中携带了目标业务的信息时,超时处理模块可以直接从业务超时触发消息中解析出目标业务。或者,当业务超时触发消息中携带了源业务的信息时,超时处理模块可以从业务超时触发消息中解析出源业务,之后,超时处理模块通过查询业务配置表得到源业务对应的目标业务。其中,该业务配置表用于记录源业务与目标业务之间的对应关系。
例如,用户在创建交易之后,如果用户需要在15分钟内完成付款,则目标业务为查询用户是否付款。基于此,业务超时触发消息中携带的目标业务的信息可以为查询用户是否付款,业务超时触发消息中携带的源业务的信息可以为创建交易业务。超时处理模块在收到业务超时触发消息之后,如果业务超时触发消息中携带的是查询用户是否付款,则超时处理模块可以直接确定目标业务为查询用户是否付款。如果业务超时触发消息中携带的是创建交易业务,则超时处理模块确定源业务为创建交易业务,并通过查询表1所示的业务配置表,可以得到创建交易业务对应的目标业务为查询用户是否付款。
表1
源业务 |
目标业务 |
创建交易业务 |
查询用户是否付款 |
付款业务 |
查询用户是否确认收货 |
进一步的,在确定目标业务为查询用户是否付款之后,超时处理模块在当前时间(即2014-7-8日12:15)触发查询用户是否付款。
步骤205,超时处理模块确定目标业务,并将业务超时触发消息中携带的任务调度时间以及对应的目标业务存储到超时处理表中。
本申请实施例中,业务超时触发消息中还可以携带目标业务的信息或者源业务的信息。基于此,超时处理模块确定目标业务的过程,具体包括但不限于:当业务超时触发消息中携带了目标业务的信息时,超时处理模块可以直接从业务超时触发消息中解析出目标业务。或者,当业务超时触发消息中携带了源业务的信息时,超时处理模块可以从业务超时触发消息中解析出源业务,之后,超时处理模块通过查询业务配置表得到源业务对应的目标业务。其中,该业务配置表用于记录源业务与目标业务之间的对应关系。
例如,用户在付款之后,如果用户需要在7天内确认收货,则目标业务为查询用户是否确认收货。基于此,业务超时触发消息中携带的目标业务的信息可以为查询用户是否确认收货,业务超时触发消息中携带的源业务的信息可以为付款业务。超时处理模块在收到业务超时触发消息之后,如果业务超时触发消息中携带的是查询用户是否确认收货,则超时处理模块可以直接确定目标业务为查询用户是否确认收货。如果业务超时触发消息中携带的是付款业务,则超时处理模块确定源业务为付款业务,并通过查询表1所示的业务配置表,可以得到付款业务对应的目标业务为查询用户是否确认收货。
进一步的,超时处理模块在确定目标业务为查询用户是否确认收货之后,该超时处理模块还需要将上述业务超时触发消息中携带的任务调度时间(即2014-7-15日12:00)以及对应的目标业务(即查询用户是否确认收货)存储到超时处理表中。如表2所示,为一种超时处理表的示例。
表2
任务调度时间 |
目标业务 |
2014-7-15日12:00 |
查询用户是否确认收货 |
步骤206,超时处理模块定时获取超时处理表中存储的任务调度时间,并在任务调度时间等于当前时间时,触发任务调度时间对应的目标业务。
例如,由于超时处理表中存储的一个任务调度时间为2014-7-15日12:00,因此,在当前时间为2014-7-15日12:00时,超时处理模块在当前时间(即2014-7-15日12:00)触发查询用户是否确认收货。
本申请实施例中,在超时处理模块确定目标业务的过程中,当业务超时触发消息中没有携带目标业务的信息以及源业务的信息时,则超时处理模块还可以输出异常报警信息。或者,在超时处理模块确定目标业务的过程中,当业务超时触发消息中携带了源业务的信息,但是业务配置表中没有记录源业务对应的目标业务时,则超时处理模块还可以输出异常报警信息。
进一步的,当超时处理模块输出异常报警信息之后,管理人员可以发现该异常报警信息,并对异常情况进行检查,从而在发现异常问题后修复问题。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,通过将超时处理模块集成在业务服务器上,并通过超时处理模块触发目标业务,从而及时触发目标业务,避免目标业务无法及时触发导致的问题,真正解决0秒超时延时的问题,即在规定的任务调度时间触发目标业务。进一步的,通过将具有超时服务器功能的超时处理模块集成在业务服务器上,使得业务服务器发送的业务超时触发消息能够直接发送到本业务服务器的超时处理模块上,而不再由超时服务器接收来自不同业务服务器的通知消息。基于此,超时处理模块能够及时收到业务超时触发消息,继而能够及时触发目标业务。由于一个业务服务器产生的业务超时触发消息有限,因此超时处理模块能够及时解析业务超时触发消息,并能够及时触发目标业务。由于在某一时间点触发的目标业务数量有限,因此超时处理模块能够及时触发目标业务。
基于与上述方法同样的申请构思,本申请实施例中还提供了一种用于业务触发的超时处理模块,如图3所示,所述超时处理模块具体包括:
接收单元11,用于接收来自业务服务器的业务超时触发消息,其中,所述业务超时触发消息中至少携带了目标业务对应的任务调度时间;
确定单元12,用于在所述任务调度时间小于当前时间或者等于当前时间时,确定目标业务,并在所述当前时间触发所述目标业务。
所述业务超时触发消息中还携带目标业务的信息或者源业务的信息;所述确定单元12,具体用于当所述业务超时触发消息中携带了目标业务的信息时,直接从所述业务超时触发消息中解析出所述目标业务;或者,当所述业务超时触发消息中携带了源业务的信息时,从所述业务超时触发消息中解析出源业务,并通过查询业务配置表得到所述源业务对应的目标业务;其中,所述业务配置表用于记录源业务与目标业务之间的对应关系。
所述超时处理模块,还包括:
输出单元13,用于当所述业务超时触发消息中没有携带目标业务的信息以及源业务的信息时,输出异常报警信息;或者,当所述业务配置表中没有记录所述源业务对应的目标业务时,输出异常报警信息。
所述确定单元12,还用于在所述任务调度时间大于当前时间时,确定目标业务,并将所述任务调度时间以及对应的目标业务存储到超时处理表中;
以及,定时获取所述超时处理表中存储的任务调度时间,并在任务调度时间等于当前时间时,触发所述任务调度时间对应的目标业务。
本申请实施例中,所述超时处理模块集成在所述业务服务器上。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。