发明内容
有鉴于此,本申请提供一种业务处理方法、装置及系统和服务器。
根据本申请实施例的第一方面,提供一种业务处理方法,应用于至少一个业务设备上,每个所述业务设备上创建有至少一个主线程,所述方法包括:
通过所述主线程接收异步业务请求;
通过所述主线程基于所述异步业务请求创建业务任务;
通过所述主线程实时创建异步线程,并通过所述异步线程处理所述业务任务,以生成对应的业务单据。
根据本申请实施例的第二方面,提供一种业务处理方法,应用于至少一个业务设备上,每个所述业务设备上创建有至少一个主线程,所述方法包括:
通过所述主线程接收异步投保请求;
通过所述主线程基于所述异步投保请求创建投保任务;
通过所述主线程实时创建异步线程,并通过所述异步线程处理所述投保任务,以生成对应的保险单据。
根据本申请实施例的第三方面,提供一种所述业务装置上创建有至少一个主线程,所述装置包括:
第一接收模块,用于通过所述主线程接收异步业务请求;
任务创建模块,用于通过所述主线程基于所述第一接收模块接收的所述异步业务请求创建业务任务;
创建处理模块,用于通过所述主线程实时创建异步线程,并通过所述异步线程处理所述任务创建模块创建的所述业务任务,以生成对应的业务单据。
根据本申请实施例的第四方面,提供一种所述业务装置上创建有至少一个主线程,所述装置包括:
第一接收模块,用于通过所述主线程接收异步投保请求;
任务创建模块,用于通过所述主线程基于所述第一接收模块接收的所述异步投保请求创建投保任务;
创建处理模块,用于通过所述主线程实时创建异步线程,并通过所述异步线程处理所述任务创建模块创建的所述投保任务,以生成对应的保险单据。
根据本申请实施例的第五方面,提供一种业务处理系统,所述系统包括第一平台和第二平台,所述第二平台包括至少一个业务设备,其中:
所述第一平台,用于向所述至少一个业务设备发送异步业务请求;
每个所述业务设备包括如上所述的业务处理装置。
根据本申请实施例的第六方面,提供一种服务器,所述服务器上创建有至少一个主线程,包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为:
通过所述主线程接收异步业务请求;
通过所述主线程基于所述异步业务请求创建业务任务;
通过所述主线程实时创建异步线程,并通过所述异步线程处理所述业务任务,以生成对应的业务单据。
在本申请实施例中,在主线程创建异步线程后,可以通过异步线程实时处理业务任务,而主线程可以继续执行后续操作不中断,且无需等待异步线程的返回结果,因此可以实现在接收到异步业务请求后快速地、高性能地处理业务任务,且由于主线程创建异步线程是实时的,其中的损耗时间基本可以忽略,因此如果用户立即查看保单,则可以看到且基本没有延时。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请实施例中,位于业务平台中的至少一个业务设备在通过主线程接收来自理财平台例如理财平台的异步业务请求后,首先通过主线程基于上述异步业务请求创建业务任务,然后通过所述主线程实时创建异步线程,并通过所述异步线程处理所述业务任务,以生成对应的业务单据。由于该实施例中在主线程创建异步线程后,可以通过异步线程实时处理业务任务,而主线程可以继续执行后续操作不中断,且无需等待异步线程的返回结果,因此可以实现在接收到异步业务请求后快速地、高性能地处理业务任务,且由于主线程创建异步线程是实时的,其中的损耗时间基本可以忽略,因此如果用户立即查看保单,则可以看到且基本没有延时。
图1是本申请一示例性实施例示出的一种业务处理方法的流程图,该实施例应用于位于业务平台中的至少一个业务设备上,其中,每个业务设备上创建有至少一个主线程,如图1所示,该业务处理方法包括:
步骤S101,通过主线程接收异步业务请求。
其中,用户可以通过理财平台例如支付宝平台中的招财宝页面进行变现,当变现成交后,支付宝平台可以通过异步消息向业务平台发送业务请求,该业务请求可以为投保请求,业务平台中的至少一个业务设备在通过主线程接收业务请求后可以自行处理后续业务,而理财平台也不依赖业务平台的返回,双方做到完全的解耦,从而可以避免因一方的问题影响另一方,例如因业务平台的问题影响支付宝平台等。
需要说明的是,上述理财平台不局限于支付宝平台,还可以为其他理财平台,例如理财通平台等。
步骤S102,通过主线程基于异步业务请求创建业务任务。
在该实施例中,业务设备中的主线程在接收到异步业务请求后,可以基于异步业务请求创建业务任务,其中,业务任务与异步业务请求一一对应,业务任务用于保存异步业务请求中携带的业务信息,该业务信息包括生成业务单据例如保单时所需的信息,例如,可以包括但不局限于投保的产品金额、收益率和投保时间等信息。
若异步业务请求为异步投保请求,则业务任务可以为投保任务。
步骤S103,通过主线程实时创建异步线程,并通过异步线程处理业务任务,以生成对应的业务单据。
其中,业务单据可以为保险单据,简称保单。
在该实施例中,在主线程创建异步线程后,可以通过异步线程实时处理业务任务,而主线程可以继续执行后续操作不中断,且无需等待异步线程的返回结果,因此可以实现在接收到异步业务请求后快速地、高性能地处理业务任务。
由于主线程创建异步线程是实时的,其中的损耗时间基本可以忽略,因此,如果用户立即查看保单,则可以看到且基本没有延时。
上述实施例,通过主线程接收异步业务请求,并通过主线程基于异步业务请求创建业务任务,然后通过主线程实时创建异步线程,并通过异步线程处理业务任务,由于在主线程创建异步线程后,可以通过异步线程实时处理业务任务,而主线程可以继续执行后续操作不中断,且无需等待异步线程的返回结果,因此可以实现在接收到异步业务请求后快速地、高性能地处理业务任务,且由于主线程创建异步线程是实时的,其中的损耗时间基本可以忽略,因此如果用户立即查看保单,则可以看到且基本没有延时。
图2是本申请一示例性实施例示出的另一种业务处理方法的流程图,如图2所示,在上述步骤S103之后,该方法还可以包括:
步骤S104,通过对应的异步线程更新业务任务。
在该实施例中,在通过异步线程处理业务任务之后,可以根据处理结果来更新业务任务。
例如,异步线程1在处理业务任务1之后,可以在业务任务1中增加一标记,该标记用于表示当前业务任务即业务任务1已经完成。
上述实施例,通过对应的异步线程更新业务任务,为后续扫描到未完成任务且处理未完成任务提供了条件。
图3是本申请一示例性实施例示出的另一种业务处理方法的流程图,如图3所示,在上述步骤S103之后,该方法还可以包括:
步骤S105,接收唤醒指令。
其中,调度中心可以每隔预设时间例如每隔5分钟向所有的业务设备发送唤醒指令。该调度中心可以位于理财平台例如支付宝平台中。
步骤S106,根据该唤醒指令调用异步线程扫描业务任务。
每个业务设备在接收到唤醒指令后,可以调用自己内部的异步线程去扫描业务任务,以获得未完成的业务任务。
例如,可以根据业务任务中是否有标记来识别业务任务是否被完成。
步骤S107,通过异步线程处理未完成的业务任务。
每个业务设备在通过异步线程扫描到未完成的业务任务后,可以通过该异步线程处理未完成的业务任务。
另外,在上述步骤S104之后,也可以包括上述步骤S105-107,但图中未示出。
上述实施例,可以根据唤醒指令调用异步线程扫描业务任务,并通过异步线程补偿处理未完成的业务任务,可以有效提高业务任务的完成率。
图4是本申请一示例性实施例示出的另一种业务处理方法的流程图,如图4所示,在上述步骤S107之后,该方法还可以包括:
步骤S108,若通过异步线程仍然未完成当前业务任务,则通过异步线程为当前业务任务设置处理时间和记录当前业务任务的失败次数。
在该实施例中,在通过异步线程补偿处理未完成的业务任务之后,仍然有可能处理失败,如果处理失败,则可以通过对应的异步线程设置下次处理时间,并记录业务任务的失败次数。
步骤S109,通过异步线程判断失败次数是否达到预设次数,若失败次数未达到预设次数,则执行步骤S110,否则,执行步骤S112。
其中,预设次数可以根据需要灵活设置,例如可以为2次、3次等。
步骤S110,接收唤醒指令。
步骤S111,根据该唤醒指令调用异步线程扫描业务任务,并在达到处理时间时处理对应的业务任务。
在该实施例中,在通过异步线程为未完成的业务任务设置下次处理时间之后,若业务设备再次接收到唤醒指令,则可以根据该唤醒指令调用异步线程扫描业务任务,并在达到之前设置的处理时间时处理对应的业务任务。
步骤S112,通过异步线程输出报警信息。
在该实施例中,可以通过异步线程对失败次数达到预设次数的数据进行监控,若失败次数达到预设次数,则表明异步线程无法处理该业务任务,则可以输出报警信息,以由人工介入处理,从而进一步提高业务任务的完成率。
上述实施例,在业务任务再次处理失败后,可以通过异步线程为当前业务任务设置处理时间和记录当前业务任务的失败次数,从而可以在达到处理时间时再次处理未完成的业务任务,在失败次数达到预设次数时输出报警信息,以由人工处理业务任务,从而可以保证所有业务任务都可以被处理。
与前述业务处理方法的实施例相对应,本申请还提供了业务处理装置的实施例。
本申请业务处理装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请业务处理装置500所在服务器的一种硬件结构图,除了图5所示的处理器510、内存520、网络接口530、以及非易失性存储器540之外,实施例中装置所在的服务器通常根据该设备的实际功能,还可以包括其他硬件,如对于服务器来说,可能包括负责处理报文的转发芯片等等。
图6是本申请一示例性实施例示出的一种业务处理装置的框图,该业务装置上创建有至少一个主线程,如图6所示,该业务处理装置包括:第一接收模块61、任务创建模块62和创建处理模块63。
第一接收模块61用于通过所述主线程接收异步业务请求。
任务创建模块62用于通过所述主线程基于所述第一接收模块61接收的所述异步业务请求创建业务任务。
创建处理模块63用于通过所述主线程实时创建异步线程,并通过所述异步线程处理所述任务创建模块62创建的所述业务任务,以生成对应的业务单据。
其中,上述异步业务请求可以但不局限于异步投保请求,当异步业务请求为异步投保请求时,创建的业务任务可以为投保任务,生成的业务单据可以为保险单据,简称保单。
在一个可选的实现方式中:
如图7所示,上述装置还可以包括:更新模块64。
更新模块64用于在所述创建处理模块63通过所述异步线程处理所述业务任务之后,通过对应的异步线程更新所述业务任务。
在另一个可选的实现方式中:
如图8所示,上述装置还可以包括:第二接收模块65、调用扫描模块66和处理模块67。
第二接收模块65用于在所述创建处理模块63通过所述异步线程处理所述业务任务之后,接收唤醒指令。
调用扫描模块66用于根据所述第二接收模块65接收的所述唤醒指令调用所述异步线程扫描所述业务任务。
处理模块67用于通过所述异步线程处理所述调用扫描模块66扫描到的未完成的业务任务。
在另一个可选的实现方式中:
如图9所示,上述装置还可以包括:设置模块68。
设置模块68,用于在所述处理模块67通过所述异步线程处理未完成的业务任务之后,若通过所述异步线程仍然未完成当前业务任务,则通过所述异步线程为所述当前业务任务设置处理时间,该处理时间用于所述异步线程根据所述唤醒指令扫描所述业务任务,并在达到所述处理时间时处理对应的业务任务。
在另一个可选的实现方式中:
如图10所示,上述装置还可以包括:记录模块69和输出模块70。
记录模块69用于在所述处理模块67通过所述异步线程处理未完成的业务任务之后,若通过所述异步线程仍然未完成当前业务任务,则通过所述异步线程记录当前业务任务的失败次数。
输出模块70用于若所述记录模块69记录的所述失败次数达到预设次数,则通过所述异步线程输出报警信息。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例,通过主线程接收异步业务请求,并通过主线程基于异步业务请求创建业务任务,然后通过主线程实时创建异步线程,并通过异步线程处理业务任务,由于在主线程创建异步线程后,可以通过异步线程实时处理业务任务,而主线程可以继续执行后续操作不中断,且无需等待异步线程的返回结果,因此可以实现在接收到异步业务请求后快速地、高性能地处理业务任务,且由于主线程创建异步线程是实时的,其中的损耗时间基本可以忽略,因此如果用户立即查看保单,则可以看到且基本没有延时;另外,可以根据唤醒指令调用异步线程扫描业务任务,并通过异步线程补偿处理未完成的业务任务,可以有效提高业务任务的完成率,并在业务任务再次处理失败后,可以通过异步线程为当前业务任务设置处理时间和记录当前业务任务的失败次数,从而可以在达到处理时间时再次处理未完成的业务任务,在失败次数达到预设次数时输出报警信息,以由人工处理业务任务,从而可以保证所有业务任务都可以被处理。
与前述业务处理方法的实施例相对应,本申请还提供了业务处理系统的实施例。
图11是本申请一示例性实施例示出的一种业务处理系统的框图,如图11所示,该系统包括:第一平台111和第二平台112,第二平台112可以包括至少一个业务设备。
所述第一平台111用于向所述至少一个业务设备发送异步业务请求。
每个所述业务设备包括如图6-10中任一附图所示结构的业务处理装置。
在另一个可选的实现方式中:
如图12所示,上述系统还可以包括:调度中心113。
所述调度中心112用于向所述至少一个业务处理装置发送唤醒指令。
上述第一平台111、第二平台112和调度中心113之间的交互过程可参见图1-图4所示的流程图,此处不详述。
另外,上述调度中心113可以位于第一平台111中。
上述实施例,通过第一平台、第二平台和调度中心之间的交互,可以实现在接收到异步业务请求后快速地、高性能地处理业务任务,且由于主线程创建异步线程是实时的,其中的损耗时间基本可以忽略,因此如果用户立即查看保单,则可以看到且基本没有延时;另外,可以根据唤醒指令调用异步线程扫描业务任务,并通过异步线程补偿处理未完成的业务任务,可以有效提高业务任务的完成率,并在业务任务再次处理失败后,可以通过异步线程为当前业务任务设置处理时间和记录当前业务任务的失败次数,从而可以在达到处理时间时再次处理未完成的业务任务,在失败次数达到预设次数时输出报警信息,以由人工处理业务任务,从而可以保证所有业务任务都可以被处理。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。