本申请涉及计算机技术领域,尤其涉及一种任务处理方法及系统。
背景技术:
对于大多数代理服务平台来说,随着金融交易量、业务品种剧增,业务请求发起过于频繁,会造成代理服务平台处理数据压力大,以及第三方渠道处理数据压力大的问题,进而导致数据送盘、回盘出现异常,用户会一直处于业务结果等待中的情况。并且,由于高并发、大数据量访问程序,往往会出现数据延时严重,快速响应不佳,程序和数据库压力大,内存空间占用大,进而导致程序运行缓慢,更严重的会造成程序崩溃等情况。因此,如何提高业务处理的效率是本领域技术人员正在研究的问题。
技术实现要素:
本申请实施例公开了一种任务处理方法及系统,能够提高任务请求处理的效率。
第一方面,本申请实施例提供了一种任务处理方法,该方法包括:
通过第一服务器根据第一预设规则校验接收到的数据转移任务请求,若校验通过,则输出所述校验通过的所述数据转移任务请求到第二服务器;
通过所述第二服务器将所述数据转移任务请求根据第二预设规则分发到第三服务器;
通过所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求;
获取所述包装后的数据转移任务请求的处理结果。
在上述方法中,通过第一服务器校验接收到的数据转移任务请求,第二服务器分发校验通过的数据转移任务请求,第三服务器包装分发到的数据转移任务请求,最后获取包装后的数据转移任务请求的处理结果,这种利用多个不同的服务器对一个任务请求进行分步处理的方式,减轻了每个服务器的压力,提高了任务请求处理效率。
基于第一方面,在其中一种可选的实现方式中,所述第一服务器根据第一预设规则校验接收到的数据转移任务请求,若校验通过,则输出所述校验通过的所述数据转移任务请求到第二服务器,还包括:
若校验不通过,则丢弃所述数据转移任务请求;
将所述校验的结果返回到发送所述数据转移任务请求的客户端。
基于第一方面,在其中一种可选的实现方式中,所述通过所述第二服务器将所述数据转移任务请求根据第二预设规则分发到第三服务器之前,还包括:
对接收到的所述数据转移任务请求加锁预先配置的分布式锁,所述分布式锁用于占用目标资源并进入数据转移任务请求执行状态;
基于设置的所述分布式锁的第一等待时间,若接收到所述加锁的指令后,超过了所述第一等待时间没有释放所述目标资源,则删除当前数据转移任务请求的所述分布式锁。
这种实现方式通过对数据转移任务请求加锁分布式锁,并设置了等待时间,若超过了第一等待时间没有处理完成该数据转移任务请求,则对该分布式锁进行强制解锁,避免了资源长期被占用,服务器宕机等状况。
基于第一方面,在其中一种可选的实现方式中,所述方法还包括:
监控所述输出所述包装后的数据转移任务请求,与获取所述包装后的数据转移任务请求的处理结果之间的回传时间,若所述回传时间超过阈值,则降低所述第三服务器输出包装后的数据转移任务请求的频率,或者降低所述第二服务器分发数据转移任务请求的频率。
这种实现方式通过对数据转移任务请求的处理结果的回传时间的监控,若回传时间超过阈值,动态延长数据转移任务请求的发送频率,减轻服务器数据处理的压力。
基于第一方面,在其中一种可选的实现方式中,所述获取所述包装后的任务请求的处理结果,之后包括:
将所述处理结果返回到发送所述数据转移任务请求的客户端。
第二方面,本申请实施例提供了一种任务处理系统,包括:第一服务器、第二服务器以及第三服务器,其中:
所述第一服务器根据第一预设规则校验接收到的数据转移任务请求,若校验通过,则输出所述校验通过的所述数据转移任务请求到所述第二服务器;
所述第二服务器将所述数据转移任务请求根据第二预设规则分发到第三服务器;
所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求;
获取所述包装后的数据转移任务请求的处理结果。
需要说明的是,第二方面的实现方式及相应的有益效果可以参照第一方面以及相应实现方式中的描述,此处不再赘述。
第三方面,本申请实施例提供了一种任务处理方法,其特征在于,包括:
第一服务器根据第一预设规则校验接收到的数据转移任务请求;
若校验通过,则所述第一服务器输出所述校验通过的数据转移任务请求到第二服务器;以使所述第二服务器将所述校验通过的数据转移任务请求根据第二预设规则分发到第三服务器,以使所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求。
在上述方法中,第一服务器校验接收到的数据转移任务请求,以使第二服务器分发校验通过的数据转移任务请求,以使第三服务器包装分发到的数据转移任务请求,最后获取包装后的数据转移任务请求的处理结果,这种利用多个不同的服务器对一个任务请求进行分步处理的方式,提高了任务请求处理效率。
第四方面,本申请实施例提供了一种任务处理装置,包括:
校验单元,用于根据第一预设规则校验接收到的数据转移任务请求;
输出单元,用于若校验通过,则输出所述校验通过的数据转移任务请求到所述第二服务器;以使所述第二服务器将所述校验通过的数据转移任务请求根据第二预设规则分发到所述第三服务器,以使所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求。
需要说明的是,第四方面的实现方式及相应的有益效果可以参照第三方面以及相应实现方式中的描述,此处不再赘述。
第五方面,本申请实施例提供了一种任务处理设备,包括处理器、存储器和通信设备,所述处理器、存储器和通信设备相互连接,其中,所述通信设备用于与外部设备进行信息交互;所述处理器被配置用于调用存储的程序代码,执行包括:
根据第一预设规则校验接收到的数据转移任务请求;
若校验通过,则通过所述通信设备输出所述校验通过的数据转移任务请求到所述第二服务器;以使所述第二服务器将所述校验通过的数据转移任务请求根据第二预设规则分发到所述第三服务器,以使所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求。
需要说明的是,第五方面的实现方式及相应的有益效果可以参照第三方面以及相应实现方式中的描述,此处不再赘述。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行第三方面所述的方法。
需要说明的是,第六方面的实现方式及相应的有益效果可以参照第三方面以及相应实现方式中的描述,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种任务处理方法的系统架构图;
图2是本申请实施例提供的一种任务处理方法的流程示意图;
图3是本申请实施例提供的一种任务处理方法的原理架构图;
图4是本申请实施例提供的又一种任务处理方法的流程示意图;
图5是本申请实施例提供的一种任务处理装置的结构示意图;
图6是本申请实施例提供的一种任务处理设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行描述。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。在本申请说明书中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本说明书中使用的术语“设备”、“单元”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,设备可以是但不限于,处理器,数据处理平台,计算设备,计算机,2个或更多个计算机等。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了更好的理解本申请实施例提供的一种任务处理方法、装置及计算机可读存储介质,下面先对本申请实施例的任务处理方法的系统架构进行描述。如图1所示,其为本申请实施例提供的一种任务处理方法的系统架构示意图,该系统可以是代理服务平台,为第三方的应用程序提供代扣业务,该系统包括内部业务系统服务器、外部渠道系统服务器、数据库服务器、第一服务器、第二服务器以及第三服务器,内部业务系统服务器向第一服务器发送数据转移任务请求,第一服务器根据第一预设规则校验接收到的数据转移任务请求,若校验通过,则输出校验通过的数据转移任务请求到第二服务器,接着第二服务器将校验通过的数据转移任务请求根据第二预设规则分发到第三服务器,然后第三服务器包装该分发到的数据转移任务请求,以使分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求到外部渠道系统服务器,最后获取包装后的数据转移任务请求的处理结果。
本申请实施例中涉及的服务器可以为独立服务器,也可以为集群服务器,可以通过互联网与多个终端进行通信,为终端提供任务请求处理服务。服务器上需要运行有相应的服务器端程序来提供相应的任务请求处理服务,如任务请求校验、分发、包装,以及数据库服务等等。其中,集群服务器就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。
内部业务系统服务器和外部渠道系统服务器可以包括但不限于后台服务器、接口服务器、数据库服务器等。第一服务器可以包括一个或多个服务器(多个服务器可以构成一个服务器集群),第二服务器和第三服务器同理。其中,第二服务器可以包括rabbitmq服务器,rabbitmq是实现了高级消息队列协议(amqp)的开源消息代理软件(亦称面向消息的中间件),rabbitmq服务器是用erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
下面结合图2就本申请的任务处理方法进行说明,如图2所示,其为本申请实施例提供的一种任务处理方法的流程示意图,该方法可以基于图1所示的系统架构或者其他架构来实现,该方法可以包括但不限于以下步骤:
步骤s101:通过第一服务器根据第一预设规则校验接收到的数据转移任务请求,若校验通过,则输出校验通过的数据转移任务请求到第二服务器。
具体地,代理服务平台通过第一服务器接收内部业务系统发送的数据转移任务请求,其中内部业务系统可以对接多个平台或客户端,发送多个平台的数据转移任务请求,第一服务器根据第一预设规则校验接收到的数据转移任务请求,该代理服务平台是为第三方服务器(外部渠道系统服务器)提供代理服务(代理处理数据转移任务请求)的平台,该第一预设规则可以是对业务请求发送方的账号权限设置、业务请求发送方的账号密码是否匹配等规则,若校验通过,即账号不受限、账号密码匹配等,则输出校验通过的数据转移任务请求到第二服务器,并将校验通过的结果返回到发送数据转移任务请求的平台或客户端;若校验不通过,即账号受限、账号密码不匹配等,则丢弃相应的数据转移任务请求,第一服务器不予处理,并将校验失败的结果返回到发送数据转移任务请求的平台或客户端。
步骤s102:通过第二服务器将数据转移任务请求根据第二预设规则分发到第三服务器。
具体地,代理服务平台通过第二服务器接收到第一服务器发送的数据转移任务请求后,根据第二预设规则将数据转移任务请求分发成不同的消息队列,同步发送到第三服务器,该第二预设规则可以是根据数据转移任务请求的来源分发,即将来自同一个平台或客户端的数据转移任务请求分发到不同的消息队列,也可以是根据数据转移任务请求的优先级分发,将优先级高的数据转移任务请求分发到高速的消息队列。
举例来说,第二服务器可以是rabbitmq服务器,如图3所示,图3描述了rabbitmq服务器分发任务请求的原理架构,其中消息交换机可以指定任务请求按预设规则路由到对应的消息队列,消息队列标识了任务请求的载体,每个任务请求都会被投到一个或多个消息队列,消息交换机根据路由关键字进行任务请求的投递;rabbitmq服务器获取到多个数据转移任务请求后,根据任务请求中的路由关键字,通过消息交换机将多个数据转移任务请求分发为不同的消息队列,发送到不同的消息队列载体上,通过消息队列载体将数据转移任务请求发送出去。
在其中一个实施方式中,在第二服务器将数据转移任务请求根据第二预设规则分发到第三服务器之前,代理服务平台的服务器(可以是第一服务器、第二服务器、第三服务器中的任意一个或多个服务器)对接收到的数据转移任务请求加锁预先配置的分布式锁,该分布式锁用于占用目标资源并进入数据转移任务请求执行状态;基于设置的分布式锁的第一等待时间,若该数据转移任务请求加锁后,超过了第一等待时间没有释放占用的目标资源,则删除当前数据转移任务请求的分布式锁,举例来说,设置第一等待时间为10秒,当服务器对数据转移业务请求成功加锁分布式锁时,若超过了10秒该数据转移业务请求没有完成(即没有释放目标资源),则服务器强制删除数据转移任务请求的分布式锁,并释放目标资源。这种实现方式通过对数据转移任务请求加锁分布式锁,并设置了等待时间,若超过了第一等待时间没有处理完成该数据转移任务请求,则对该分布式锁进行强制解锁,避免了资源长期被占用,服务器宕机等状况。
步骤s103:通过第三服务器包装分发到的数据转移任务请求,以使分发到的数据转移任务请求符合预设格式,并输出包装后的数据转移任务请求。
具体地,代理服务平台通过第三服务器接收到第一服务器发送的数据转移任务请求后,包装该数据转移任务请求,以使数据转移任务请求符合预设格式,并向外部渠道系统服务器输出包装后的数据转移任务请求,其中预设格式为外部渠道系统服务器要求的格式,外部渠道系统服务器为第三方服务器,例如有快付通代扣系统、快线代扣系统、易办事代扣系统等。
步骤s104:获取包装后的数据转移任务请求的处理结果。
具体地,代理服务平台通过第三服务器向外部渠道系统服务器输出包装后的数据转移任务请求后,外部渠道系统服务器处理该数据转移任务请求,并返回该数据转移任务请求的处理结果到代理服务平台的服务器(可以是第一服务器、第二服务器、第三服务器中的任意一个或多个服务器),并将处理结果返回到发送该数据转移任务请求的客户端。
在其中一个实施方式中,本申请实施例的代理服务平台还包括监控功能,该监控功能可以布置在第一服务器、第二服务器和第三服务器中的任意一个或多个服务器中,服务器监控第三服务器输出包装后的数据转移任务请求,与获取包装后的数据转移任务请求的处理结果之间的回传时间,若回传时间超过阈值,则降低第三服务器输出包装后的数据转移任务请求的频率,或者降低第二服务器分发数据转移任务请求的频率,举例来说,阈值设置为5秒,第三服务器向外部渠道系统服务器输出数据转移任务请求,然后获取到该数据转移任务请求的处理结果,这之间的时间如果超过了5秒,则表示第三服务器发送请求的速度或者外部渠道系统服务器处理请求的速度较慢,若监控检测到时间超过了5秒,那么可以降低第三服务器输出任务请求的频率,或者降低第二服务器分发任务请求的频率,以减少外部渠道系统服务器或第三服务器的压力。这种实施方式通过对数据转移任务请求的处理结果的回传时间的监控,若回传时间超过阈值,动态延长数据转移任务请求的发送频率,减轻服务器数据处理的压力。
在其中一个实施方式中,本申请实施例还可以包括数据库服务器,用于提供数据库服务。在对数据库系统的优化中,可以通过适量增加索引(最多六个),也可以避免不等号、or、全表扫描等方式对数据库优化。数据库中的大数据,通过多线程发送后,不需等待调用渠道完毕,就可以返回受理结果给客户端,通知客户端任务请求处理已完成。
在其中一个实施方式中,本申请实施例还可以包括缓存服务器,用于存放频繁访问的内容,以提高内容访问速度,通过缓存插件redis持久化机制(rdb和aof),减轻数据库负担,还可以使用redis的setnx命令,实现分布式锁,使用redis的get(lockkey,expires)获取上一个锁的到期时间,并设置当前分布式锁的到期时间。
实施本申请实施例,通过第一服务器校验接收到的数据转移任务请求,第二服务器分发校验通过的数据转移任务请求,第三服务器包装分发到的数据转移任务请求,最后获取包装后的数据转移任务请求的处理结果,这种利用多个不同的服务器对一个任务请求进行分步处理的方式,减轻了每个服务器的压力,提高了数据转移任务请求的处理效率。
本申请还提供了一种任务处理方法,如图4所示,其为本申请实施例提供的一种任务处理方法的流程示意图,该方法可以基于上述的系统架构或者其他架构来实现,该方法可以包括但不限于以下步骤:
步骤s401:第一服务器根据第一预设规则校验接收到的数据转移任务请求;
具体地,第一服务器接收内部业务系统发送的数据转移任务请求,其中内部业务系统可以对接多个平台或客户端,发送多个平台的数据转移任务请求,第一服务器根据第一预设规则校验接收到的数据转移任务请求,该第一预设规则可以是对业务请求发送方的账号权限设置、业务请求发送方的账号密码是否匹配等规则。
步骤s402:若校验通过,则第一服务器输出校验通过的数据转移任务请求到第二服务器;以使第二服务器将校验通过的数据转移任务请求根据第二预设规则分发到第三服务器,以使第三服务器包装分发到的数据转移任务请求,以使分发到的数据转移任务请求符合预设格式,并输出包装后的数据转移任务请求。
具体地,若校验通过,即账号不受限、账号密码匹配等,则输出校验通过的数据转移任务请求到第二服务器,以使第二服务器将校验通过的数据转移任务请求根据第二预设规则分发到第三服务器,以使第三服务器包装分发到的数据转移任务请求,以使分发到的数据转移任务请求符合预设格式,并输出包装后的数据转移任务请求;同时,若校验通过,第一服务器将校验通过的结果返回到发送数据转移任务请求的平台或客户端;若校验不通过,即账号受限、账号密码不匹配等,则丢弃相应的数据转移任务请求,第一服务器不予处理,并将校验失败的结果返回到发送数据转移任务请求的平台或客户端。
实施本申请实施例,第一服务器校验接收到的数据转移任务请求,以使第二服务器分发校验通过的数据转移任务请求,以使第三服务器包装分发到的数据转移任务请求,最后获取包装后的数据转移任务请求的处理结果,这种利用多个不同的服务器对一个任务请求进行分步处理的方式,提高了任务请求处理效率。
为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种任务处理装置,下面结合附图来进行详细说明:
如图5所示,本申请实施例提供一种任务处理装置50的结构示意图,任务处理装置50可以包括:校验单元501和输出单元502,其中,
校验单元501,用于根据第一预设规则校验接收到的数据转移任务请求;
输出单元502,用于若校验通过,则输出所述校验通过的数据转移任务请求到所述第二服务器;以使所述第二服务器将所述校验通过的数据转移任务请求根据第二预设规则分发到所述第三服务器,以使所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求。
需要说明的是,本申请实施例中图5所描述的装置中各功能单元的功能可参见上述图4中所述的方法实施例的第一服务器执行步骤s401和步骤s402的相关描述,此处不再赘述。
根据以上任务处理装置图,请参考图6,图6是本申请实施例提供的一种简化的任务处理设备结构示意图。便于理解和图示方便,图6的任务处理设备60中,可以包括以下一个或多个组件:存储器601、处理器602和通信设备603,其中:
存储器601可以包括一个或多个存储单元,每个单元可以包括一个或多个存储器,存储器可用于存储程序和各种数据,并能在任务处理设备60运行过程中高速、自动地完成程序或数据的存取。当图6所示的任务处理设备60,执行图2所述方法时,存储器可以用来存储任务处理、任务处理以及其他相关数据等。
通信设备603,也可以称为收发机,或收发器等,其中可以包括用来进行无线、有线或其他通信方式的单元。可选的,可以将603部分中用于实现接收功能的器件视为接收单元,将用于实现发送功能的器件视为发送单元,即603部分包括接收单元和发送单元。
处理器602,处理器也可以称为处理单元,处理单板,处理模块,处理装置等。处理器可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。当图6所示的任务处理设备60,执行图2所述方法时,所述处理器602调用所述存储器601的任务处理程序,执行以下步骤:
通过通信设备603根据第一预设规则校验接收到的数据转移任务请求;
若校验通过,则通过所述通信设备603输出所述校验通过的数据转移任务请求到所述第二服务器;以使所述第二服务器将所述校验通过的数据转移任务请求根据第二预设规则分发到所述第三服务器,以使所述第三服务器包装所述分发到的数据转移任务请求,以使所述分发到的数据转移任务请求符合预设格式,并输出所述包装后的数据转移任务请求。
需要说明的是,本申请实施例中的任务处理设备60中处理器602的执行步骤可参考上述各方法实施例中图4实施例的第一服务器的具体实现方式,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
在本申请中,所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。尽管在此结合各实施例对本申请进行了描述,然而,在实施例所要求保护的本申请过程中,本领域技术人员可理解并实现公开实施例的其他变化。