CN109101296A - 分布式自动扣款方法及系统 - Google Patents
分布式自动扣款方法及系统 Download PDFInfo
- Publication number
- CN109101296A CN109101296A CN201810753304.3A CN201810753304A CN109101296A CN 109101296 A CN109101296 A CN 109101296A CN 201810753304 A CN201810753304 A CN 201810753304A CN 109101296 A CN109101296 A CN 109101296A
- Authority
- CN
- China
- Prior art keywords
- withholing
- instruction
- bill
- data
- object command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种分布式自动扣款方法及系统,其中系统包括:用于解析并读取账单数据的模块;用于根据读取到的账单数据生成扣款账单的模块;用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块;用于在不同扣款通道对所述扣款结果指令进行扣款操作的模块。这样,系统将业务和功能脱离,根据业务来自由组合功能模块来迅速实现业务需求;将各个功能模块解耦,实现多人多功能模块的并行开发;采用缓存机制,以减少程序对数据库的依赖,降低数据库负担;采用分布式并发程序处理,实现数据的多批次高并发量处理;采用集群模式,保证服务稳定可靠,能迅速应对各种异常情况,避免由于部分节点失灵而导致整个系统失效。
Description
技术领域
本发明涉及计算机软件领域,尤其涉及一种分布式自动扣款方法及系统。
背景技术
公司当前的自动扣款功能是由单一的自动扣款程序来实现的。随着业务模式逐渐复杂,业务量急剧上升,代码迭代愈发复杂冗长,各个产品扣款规则紧密耦合,使得业务错综复杂,不能及时有效的满足业务方提出的新需求;代码耦合度高,难以对多个需求并行开发,影响开发及上线进度;程序大量依赖数据库,给数据库造成很重的负担,数据库死锁风险高;数据只能单批串行处理,随着业务量爆发,处理所需的时间日益增长;稳定性及安全性难以保证,一旦服务器宕机就会产生数据丢失等灾难性后果。
发明内容
本发明的目的是提供一种分布式自动扣款方法及系统。
本发明所提供的分布式自动扣款方法,包括如下步骤:
S1用于解析并读取账单数据的步骤;
S2用于根据读取到的账单数据生成扣款账单的步骤;
S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤;
S4用于在不同扣款通道对所述扣款结果指令进行扣款操作的步骤。
本发明所提供的分布式自动扣款系统,包括:用于解析并读取账单数据的模块;用于根据读取到的账单数据生成扣款账单的模块;用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块;用于在不同扣款通道对所述扣款结果指令进行扣款操作的模块。
本发明所提供的分布式自动扣款方法及系统,系统将业务和功能脱离,根据业务来自由组合功能模块来迅速实现业务需求;将各个功能模块解耦,实现多人多功能模块的并行开发;采用缓存机制,以减少程序对数据库的依赖,降低数据库负担;采用分布式并发程序处理,实现数据的多批次高并发量处理;采用集群模式,保证服务稳定可靠,能迅速应对各种异常情况,避免由于部分节点失灵而导致整个系统失效。
附图说明
图1、2为本发明实施例一所述的分布式自动扣款方法的流程示意图;
图3为本发明实施例一所述S1用于解析并读取账单数据的步骤示意图;
图4为本发明实施例一所述S2用于根据读取到的账单数据生成扣款账单的步骤示意图;
图5为本发明实施例一所述S31用于根据自动指令操作生成扣款结果指令的步骤示意图;
图6为本发明实施例一所述S32用于根据手动指令操作生成扣款结果指令的步骤示意图;
图7为本发明实施例一所述S4用于在不同扣款通道对所述扣款结果指令进行扣款操作的步骤示意图;
图8-15为本发明实施例一所述S5用于根据所述扣款指令操作完成后续处理的步骤示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1、2所示,本实施例提供一种分布式自动扣款方法,包括如下步骤:
S1用于解析并读取账单数据的步骤;
S2用于根据读取到的账单数据生成扣款账单的步骤;
S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤;
S4用于在不同扣款通道对所述扣款结果指令进行扣款操作的步骤。
本领域技术人员可以理解,本实施例所提供的分布式自动扣款方法,是对现有业务进行拆分,重新划分各个模块程序职责,让其职责更加明确,各个程序间通过RabbitMQ集群队列进行通讯,互不干扰但又息息相关的一套自动扣款方法,各个程序可以无限进行水平扩容,极大的提高了对数据的处理能力。本实施例所提供的分布式自动扣款方法将业务和功能脱离,根据业务来自由组合功能模块来迅速实现业务需求;将各个功能模块解耦,实现多人多功能模块的并行开发;采用缓存机制,以减少程序对数据库的依赖,降低数据库负担;采用分布式并发程序处理,实现数据的多批次高并发量处理;采用集群模式,一旦有服务器异常会立刻自动切换至其他服务器,即使多个服务器故障,也能自动将负载分流至正常服务器,保证服务稳定可靠,能迅速应对各种灾难场景,避免由于部分节点失灵而导致整个系统失效。
在分布式自动扣款系统中,规则配置项(函数名)存储到数据库中,用python编写完算法和条件逻辑(函数方法)后,将其放在文件目录里。在系统监控预警程序中,自动将函数名及函数方法同步更新至数据库中。之所以这么设计是因为python有严格的代码格式规范,直接编写SQL保存至数据库中容易产生格式问题,难以排查故障。故需先用python编辑好后通过监控程序自动上传至数据库,以确保代码的稳健性。为保证分布式自动扣款系统对存量业务的兼容,编写新的配置项信息时,通过扣款规则+产品类型(ProductType+LoanKind)维度来切分开现有的扣款配置,使各个产品独立拥有一套规则及算法,避免各产品之间复杂的业务差异导致程序冲突。该集成系统的每个程序都会在启动之时自动注册信息到监控程序中,采取动态心跳机制,以检测程序是否异常离线,实时捕捉程序运行状态。各模块程序都定制异常熔断机制,触发异常模式后,程序自动挂起,防止因程序异常而导致异常数据蔓延。该系统通过心跳机制和异常熔断机制保障了系统的安全性。分布式自动扣款系统通过程序集群、Redis集群、RabbitMQ集群和MSSQL集群来共同实现整个系统的分布式架构。Redis作为一款速度非常快的非关系型内存数据库,可以迅速进行数据存取。RabbitMQ是分布式的消息队列,可以实现程序间的快速异步通讯,极大地缩短了服务器的请求响应时间,从而提高了系统的吞吐量。另一方面,它将数据实时更新在硬盘上,保障了数据的持久化以及安全性。MSSQL作为市面上主流的关系型数据库,提供了企业级的数据管理功能,可以满足我司庞大的数据库管理和分析要求。程序集群与Redis集群交互,分别快速计算的数据保存在RabbitMQ集群队列中,直至最终汇总出完整的数据后才存入MSSQL数据库中,极大的减少了各个程序在运算过程中对MSSQL数据库的访问频次。因访问数据库而导致的数据库时间消耗及性能消耗由此锐减。数据库不再有大规模高频的访问量,从而缓解了数据库负载,大幅度提升了数据处理能力。而RabbitMQ集群配合Redis集群,保证了数据的持久化,以确保运算数据不被丢失。
如图3所示,所述S1用于解析并读取账单数据的步骤包括:
S11用于获取账单数据并进行自启动操作的步骤;
S12用于对账单数据进行筛选并生成队列的步骤。
本领域技术人员可以理解,数据拉起程序每天会在约定好的时间自动启动,获取满足要求的数据,开始进行处理,这是整个扣款系统开始环节的入口之一;所述队列包括账单数据队列及自动生成指令队列,不同的队列对应不同的账单数据。
进一步,所述S12用于对账单数据进行筛选并生成队列的步骤包括:
S121获取符合条件的账单日数据,导入生成账单数据队列;
S122获取符合条件的逾期账单数据,导入自动生成指令队列。
本领域技术人员可以理解,数据拉起程序会获取满足条件的账单日数据,导入生成账单程序队列中;获取满足条件的逾期账单数据,导入自动生成指令程序队列中;将所有满足条件的数据全部导入对应队列之后,程序即自动停止。
如图4所示,所述S2用于根据读取到的账单数据生成扣款账单的步骤包括:
S21用于从生成账单数据队列中自动获取数据生成待处理订单的步骤;
S22用于将待处理订单根据账单属性选择相应产品的生成账单规则的步骤;
S23用于选择符合条件的规则生成相应的账单并对账单金额计算的步骤。
本领域技术人员可以理解,生成账单模块程序会自动从生成账单队列中获取数据,然后根据账单属性选择相应产品的生成账单规则,然后遍历此产品所配置的规则,选择符合条件的规则生成相应的账单,以及其金额的计算,生成完成,会将该账单丢入自动生成指令程序队列中。
进一步,所述S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤包括:
S31用于根据自动指令操作生成扣款结果指令的步骤。
如图5所示,所述S31用于根据自动指令操作生成扣款结果指令的步骤包括:
S311用于从自动生成指令队列中获取数据的步骤;
S312用于自动选择与获取数据匹配的指令规则并将账单进行多条指令处理的步骤;
S313用于通过自动选择的扣款平台,将指令发送至相应的扣款通道进行扣款操作的步骤。
本领域技术人员可以理解,所述指令规则为拆包指令规则,用于将账单拆成多条指令。自动指令程序从自动生成指令程序队列中获取到数据后,选择与之匹配的拆包指令规则将账单进行拆成多条指令,根据选择的扣款平台,发送至相应的扣款程序进行扣款操作。
自动指令程序中包含两个线程,一个是第一次打包线程;另一个线程是负责接收回来的指令判定是否需要继续打包操作。扣款指令需按照规范配置成相应的层级结构,可在监控程序中查看其层级结构模式。
进一步,所述S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤还包括:
S32用于根据手动指令操作生成扣款结果指令的步骤。
如图6所示,所述S32用于根据手动指令操作生成扣款结果指令的步骤包括:
S321用于通过接口服务进行操作的步骤;
S322用于手动选择与获取数据匹配的指令规则并根据规则进行扣款处理的步骤;
S323用于通过所述扣款处理生成扣款结果指令并进行结果指令推送操作的步骤。
本领域技术人员可以理解,所述指令规则为拆包指令规则,用于将账单拆成多条指令。所述接口服务包括模拟账单查询、订单详情查询、产品发起提前清贷操作以及各个产品定制化操作。手动指令程序与自动指令程序类似,只是入口由接口程序进入,指令规则的选取同上,只是判断逻辑和一些操作与自动扣款有差异。相对而言,它的逻辑比较简单,但是它会根据结果进行结果推送,短信发送,账单注销等操作。
进一步,所述S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤还包括:
S33用于根据清贷指令操作生成扣款结果指令的步骤。
进一步,所述S33用于根据清贷指令操作生成扣款结果指令的步骤包括:
S331用于通过接口服务发起提前清贷操作的步骤;
S332用于通过接口生成提前清贷账单的步骤;
S333用于根据所述提前清贷账单进行扣款操作并生成扣款结果指令的步骤。
本领域技术人员可以理解,所述接口服务主要提供模拟账单查询、订单详情查询、产品发起提前清贷操作以及各个产品定制化操作。接口服务程序可以为各个产品定制不同的产品接口,但是会统一调用系统的生成账单程序模块去模拟出统一规则的账单信息,然后返回给调用方。各个项目组也可以通过接口服务程序来发起提前清贷操作,通过接口生成提前清贷账单,然后通过手动指令程序发起扣款操作。
如图7所示,所述S4用于在不同扣款通道对所述扣款结果指令进行扣款操作的步骤包括:
S41通过扣款通道接收扣款结果指令并发送至对应的扣款结果队列;
S42若未接收到扣款结果指令,当查询扣款结果次数达到上限,则发送至异常处理队列;
S43若接收到扣款结果指令,将指令发送至扣款操作;在接收到指令数据后,进行校验处理,未发现异常则进行扣款操作;
S44扣款操作完成后指令返回并判断是否继续进行打包操作,若无须打包,推送指令数据至生成衍生操作,衍生成相应的衍生科目,配置规则生成账单规则,完成后进入结束清空操作。
本领域技术人员可以理解,回盘操作即指通过扣款通道接收扣款结果指令并发送至对应的扣款结果队列。所述打包操作为判断待处理指令是否能进入扣款操作,待处理指令能进入扣款操作,则将多条相关指令打包进行下一步操作;待处理指令不能进入扣款操作,则进入衍生操作。所述衍生项目包括生成扣失及罚息操作;所述结束清空操作包括对残留数据的清理、清空Redis缓存数据及账单的解冻操作。本实施例中外贸扣款池、外贸扣款通道及外贸回盘池一一对应;投资平台扣款池、投资平台扣款通道及投资平台回盘池一一对应;支付平台扣款池、支付平台扣款通道及支付平台回盘池一一对应;运营商扣款池、运营商扣款通道及运营商回盘池一一对应。本实施例中扣款校验操作包括填账操作。
扣款平台也进行拆分操作,拆分的也更加彻底,为每一个扣款通道平台定制一个扣款通道程序。每个扣款程序只负责自己平台数据的处理,在生成指令时便会决定这条指令通过哪个通道来扣款。通道可以在监控程序进行管控操作。通道会自带回盘操作,接收到的扣款结果会丢入对应的扣款结果队列池中。如果迟迟未收到扣款结果,以致查询扣款结果次数达到上限,则会抛出来,丢入异常处理程序队列中。扣款通道程序将接收到有结果的指令发送至填帐程序以作下一步处理。填账程序会实时检查扣款队列池,一旦接收到数据后,填帐程序会进行校验,没有异常便会去进行填帐操作。填帐完成后,指令重新回到指令程序,进行判断是否继续进行打包操作。如果自动指令程序判断该条待处理指令无须打包,便会推送数据至生成衍生程序,衍生生成相应的衍生科目,配置规则同生成账单规则,完成之后,数据进入结束清空程序。
进一步,本实施例所提供的分布式自动扣款方法还包括如下步骤:S5用于根据所述扣款指令操作完成后续处理的步骤。
进一步,所述S5用于根据所述扣款指令操作完成后续处理的步骤包括:
S51用于对扣款过程进行异常处理的步骤。
本领域技术人员可以理解,整个操作过程中,出现异常都会将错误信息上传至异常处理程序,由异常处理程序进行相应的处理,判断,以及通知操作。
如图8所示,所述S5用于根据所述扣款指令操作完成后续处理的步骤还包括:
S52用于对扣款过程进行运维监控的步骤。
本领域技术人员可以理解,整个扣款环境中的控制中心,通过可视化界面操作,可以实现程序的启停,异常数据的查看,程序运行状态等一系列控制和监控操作。本实施例如图9-15所示,以通道和银行为维度进行统计七天扣款情况:以通道和银行为维度进行统计当天扣款情况,预先设定某个通道下某个银行某个时间进行维护,维护期间过后开始进行扣款;热更新算法,程序正在运行时,可以不停止程序,及时更新算法至各个程序模块;控制各个服务器下相应程序的启停操作;控制通道的是否启用;控制每种扣款通道的权重配置;处理中的数据实时监控。
进一步,所述S5用于根据所述扣款指令操作完成后续处理的步骤还包括:
S53用于对扣款指令进行数据收集的步骤。
本领域技术人员可以理解,对扣款指令数据收集是用来收集扣款指令的数据,由于现存的数据库数据过多,查询数据会影响生产效率,为了实现快捷查询和不影响生产效率,生成的新数据表用来收集数据,用来做报表统计使用。
实施例二
本实施例提供一种分布式自动扣款系统,包括:
用于解析并读取账单数据的模块;
用于根据读取到的账单数据生成扣款账单的模块;
用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块;
用于在不同扣款通道对所述扣款结果指令进行扣款操作的模块。
本领域技术人员可以理解,本实施例所提供的分布式自动扣款系统,是对现有业务进行拆分,重新划分各个模块程序职责,让其职责更加明确,各个程序间通过RabbitMQ集群队列进行通讯,互不干扰但又息息相关的一套自动扣款系统,各个程序可以无限进行水平扩容,极大的提高了对数据的处理能力。本实施例所提供的分布式自动扣款系统将业务和功能脱离,根据业务来自由组合功能模块来迅速实现业务需求;将各个功能模块解耦,实现多人多功能模块的并行开发;采用缓存机制,以减少程序对数据库的依赖,降低数据库负担;采用分布式并发程序处理,实现数据的多批次高并发量处理;采用集群模式,一旦有服务器异常会立刻自动切换至其他服务器,即使多个服务器故障,也能自动将负载分流至正常服务器,保证服务稳定可靠,能迅速应对各种灾难场景,避免由于部分节点失灵而导致整个系统失效。
在分布式自动扣款系统中,规则配置项(函数名)存储到数据库中,用python编写完算法和条件逻辑(函数方法)后,将其放在文件目录里。在系统监控预警程序中,自动将函数名及函数方法同步更新至数据库中。之所以这么设计是因为python有严格的代码格式规范,直接编写SQL保存至数据库中容易产生格式问题,难以排查故障。故需先用python编辑好后通过监控程序自动上传至数据库,以确保代码的稳健性。为保证分布式自动扣款系统对存量业务的兼容,编写新的配置项信息时,通过扣款规则+产品类型(ProductType+LoanKind)维度来切分开现有的扣款配置,使各个产品独立拥有一套规则及算法,避免各产品之间复杂的业务差异导致程序冲突。该集成系统的每个程序都会在启动之时自动注册信息到监控程序中,采取动态心跳机制,以检测程序是否异常离线,实时捕捉程序运行状态。各模块程序都定制异常熔断机制,触发异常模式后,程序自动挂起,防止因程序异常而导致异常数据蔓延。该系统通过心跳机制和异常熔断机制保障了系统的安全性。分布式自动扣款系统通过程序集群、Redis集群、RabbitMQ集群和MSSQL集群来共同实现整个系统的分布式架构。Redis作为一款速度非常快的非关系型内存数据库,可以迅速进行数据存取。RabbitMQ是分布式的消息队列,可以实现程序间的快速异步通讯,极大地缩短了服务器的请求响应时间,从而提高了系统的吞吐量。另一方面,它将数据实时更新在硬盘上,保障了数据的持久化以及安全性。MSSQL作为市面上主流的关系型数据库,提供了企业级的数据管理功能,可以满足我司庞大的数据库管理和分析要求。程序集群与Redis集群交互,分别快速计算的数据保存在RabbitMQ集群队列中,直至最终汇总出完整的数据后才存入MSSQL数据库中,极大的减少了各个程序在运算过程中对MSSQL数据库的访问频次。因访问数据库而导致的数据库时间消耗及性能消耗由此锐减。数据库不再有大规模高频的访问量,从而缓解了数据库负载,大幅度提升了数据处理能力。而RabbitMQ集群配合Redis集群,保证了数据的持久化,以确保运算数据不被丢失。
进一步,所述用于解析并读取账单数据的模块包括:
用于获取账单数据并进行自启动操作的子模块;
用于对账单数据进行筛选并生成队列的子模块。
本领域技术人员可以理解,数据拉起程序每天会在约定好的时间自动启动,获取满足要求的数据,开始进行处理,这是整个扣款系统开始环节的入口之一;所述队列包括账单数据队列及自动生成指令队列,不同的队列对应不同的账单数据。
进一步,所述用于对账单数据进行筛选并生成队列的子模块包括:
获取符合条件的账单日数据并导入生成账单数据队列的单元;
获取符合条件的逾期账单数据并导入自动生成指令队列的单元。
本领域技术人员可以理解,数据拉起程序会获取满足条件的账单日数据,导入生成账单程序队列中;获取满足条件的逾期账单数据,导入自动生成指令程序队列中;将所有满足条件的数据全部导入对应队列之后,程序即自动停止。
进一步,所述用于根据读取到的账单数据生成扣款账单的模块包括:
用于从生成账单数据队列中自动获取数据生成待处理订单的子模块;
用于将待处理订单根据账单属性选择相应产品的生成账单规则的子模块;
用于选择符合条件的规则生成相应的账单并对账单金额计算的子模块。
本领域技术人员可以理解,生成账单模块程序会自动从生成账单队列中获取数据,然后根据账单属性选择相应产品的生成账单规则,然后遍历此产品所配置的规则,选择符合条件的规则生成相应的账单,以及其金额的计算,生成完成,会将该账单丢入自动生成指令程序队列中。
进一步,所述用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块包括:
用于根据自动指令操作生成扣款结果指令的子模块。
进一步,所述用于根据自动指令操作生成扣款结果指令的子模块包括:
用于从自动生成指令队列中获取数据的单元;
用于自动选择与获取数据匹配的指令规则并将账单进行多条指令处理的单元;
用于通过自动选择的扣款平台,将指令发送至相应的扣款通道进行扣款操作的单元。
本领域技术人员可以理解,自动指令程序从自动生成指令程序队列中获取到数据后,选择与之匹配的拆包指令规则将账单进行拆成多条指令,根据选择的扣款平台,发送至相应的扣款程序进行扣款操作。
自动指令程序中包含两个线程,一个是第一次打包线程;另一个线程是负责接收回来的指令判定是否需要继续打包操作。扣款指令需按照规范配置成相应的层级结构,可在监控程序中查看其层级结构模式。
进一步,所述用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块还包括:
用于根据手动指令操作生成扣款结果指令的子模块。
进一步,所述用于根据手动指令操作生成扣款结果指令的子模块包括:
用于通过接口服务进行操作的单元;
用于手动选择与获取数据匹配的指令规则并根据规则进行扣款处理的单元;
用于通过所述扣款处理生成扣款结果指令并进行结果指令推送操作的单元。
本领域技术人员可以理解,所述指令规则为拆包指令规则,用于将账单拆成多条指令。所述接口服务包括模拟账单查询、订单详情查询、产品发起提前清贷操作以及各个产品定制化操作。手动指令程序与自动指令程序类似,只是入口由接口程序进入,指令规则的选取同上,只是判断逻辑和一些操作与自动扣款有差异。相对而言,它的逻辑比较简单,但是它会根据结果进行结果推送,短信发送,账单注销等操作。
进一步,所述用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块还包括:
用于根据清贷指令操作生成扣款结果指令的子模块。
进一步,所述用于根据清贷指令操作生成扣款结果指令的子模块包括:
用于通过接口服务发起提前清贷操作的单元;
用于通过接口生成提前清贷账单的单元;
用于根据所述提前清贷账单进行扣款操作并生成扣款结果指令的单元。
本领域技术人员可以理解,所述指令规则为拆包指令规则,用于将账单拆成多条指令。所述接口服务主要提供模拟账单查询、订单详情查询、产品发起提前清贷操作以及各个产品定制化操作。接口服务程序可以为各个产品定制不同的产品接口,但是会统一调用系统的生成账单程序模块去模拟出统一规则的账单信息,然后返回给调用方。各个项目组也可以通过接口服务程序来发起提前清贷操作,通过接口生成提前清贷账单,然后通过手动指令程序发起扣款操作。
进一步,所述用于在不同扣款通道对所述扣款结果指令进行扣款操作的模块包括:
通过扣款通道接收扣款结果指令并发送至对应的扣款结果队列的子模块;
若未接收到扣款结果指令,当查询扣款结果次数达到上限,则发送至异常处理队列的子模块;
若接收到扣款结果指令,将指令发送至扣款操作;在接收到指令数据后,进行校验处理,未发现异常则进行填账操作的子模块;
扣款操作完成后指令返回并判断是否继续进行打包操作,若无须打包,推送数据至生成衍生操作,衍生成相应的衍生科目,配置规则生成账单规则,完成后进入结束清空操作的子模块。
本领域技术人员可以理解,回盘操作即指通过扣款通道接收扣款结果指令并发送至对应的扣款结果队列。所述打包操作为判断待处理指令是否能进入扣款操作,待处理指令能进入扣款操作,则将多条相关指令打包进行下一步操作;待处理指令不能进入扣款操作,则进入衍生操作。所述衍生项目包括生成扣失及罚息操作;所述结束清空操作包括对残留数据的清理、清空Redis缓存数据及账单的解冻操作。本实施例中外贸扣款池、外贸扣款通道及外贸回盘池一一对应;投资平台扣款池、投资平台扣款通道及投资平台回盘池一一对应;支付平台扣款池、支付平台扣款通道及支付平台回盘池一一对应;运营商扣款池、运营商扣款通道及运营商回盘池一一对应。本实施例中扣款校验操作包括填账操作。
扣款平台也进行拆分操作,拆分的也更加彻底,为每一个扣款通道平台定制一个扣款通道程序。每个扣款程序只负责自己平台数据的处理,在生成指令时便会决定这条指令通过哪个通道来扣款。通道可以在监控程序进行管控操作。通道会自带回盘操作,接收到的扣款结果会丢入对应的扣款结果队列池中。如果迟迟未收到扣款结果,以致查询扣款结果次数达到上限,则会抛出来,丢入异常处理程序队列中。扣款通道程序将接收到有结果的指令发送至填帐程序以作下一步处理。填账程序会实时检查扣款队列池,一旦接收到数据后,填帐程序会进行校验,没有异常便会去进行填帐操作。填帐完成后,指令重新回到指令程序,进行判断是否继续进行打包操作。如果自动指令程序判断该条待处理指令无须打包,便会推送数据至生成衍生程序,衍生生成相应的衍生科目,配置规则同生成账单规则,完成之后,数据进入结束清空程序。
进一步,本实施例所提供的分布式自动扣款系统还包括:用于根据所述扣款指令操作完成后续处理的模块。
进一步,所述用于根据所述扣款指令操作完成后续处理的模块包括:
用于对扣款过程进行异常处理的子模块。
本领域技术人员可以理解,整个操作过程中,出现异常都会将错误信息上传至异常处理程序,由异常处理程序进行相应的处理,判断,以及通知操作。
进一步,所述用于根据所述扣款指令操作完成后续处理的模块还包括:
用于对扣款过程进行运维监控的子模块。
本领域技术人员可以理解,整个扣款环境中的控制中心,通过可视化界面操作,可以实现程序的启停,异常数据的查看,程序运行状态等一系列控制和监控操作。以通道和银行为维度进行统计七天扣款情况:以通道和银行为维度进行统计当天扣款情况,预先设定某个通道下某个银行某个时间进行维护,维护期间过后开始进行扣款;热更新算法,程序正在运行时,可以不停止程序,及时更新算法至各个程序模块;控制各个服务器下相应程序的启停操作;控制通道的是否启用;控制每种扣款通道的权重配置;处理中的数据实时监控。
进一步,所述用于根据所述扣款指令操作完成后续处理的模块还包括:
用于对扣款指令进行数据收集的子模块。
本领域技术人员可以理解,对扣款指令数据收集是用来收集扣款指令的数据,由于现存的数据库数据过多,查询数据会影响生产效率,为了实现快捷查询和不影响生产效率,生成的新数据表用来收集数据,用来做报表统计使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (30)
1.一种分布式自动扣款方法,其特征在于,包括如下步骤:
S1用于解析并读取账单数据的步骤;
S2用于根据读取到的账单数据生成扣款账单的步骤;
S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤;
S4用于在不同扣款通道对所述扣款结果指令进行扣款操作的步骤。
2.如权利要求1所述的分布式自动扣款方法,其特征在于,所述S1用于解析并读取账单数据的步骤包括:
S11用于获取账单数据并进行自启动操作的步骤;
S12用于对账单数据进行筛选并生成队列的步骤。
3.如权利要求3所述的分布式自动扣款方法,其特征在于,所述S12用于对账单数据进行筛选并生成队列的步骤包括:
S121获取符合条件的账单日数据,导入生成账单数据队列;
S122获取符合条件的逾期账单数据,导入自动生成指令队列。
4.如权利要求1所述的分布式自动扣款方法,其特征在于,所述S2用于根据读取到的账单数据生成扣款账单的步骤包括:
S21用于从生成账单数据队列中自动获取数据生成待处理订单的步骤;
S22用于将待处理订单根据账单属性选择相应产品的生成账单规则的步骤;
S23用于选择符合条件的规则生成相应的账单并对账单金额计算的步骤。
5.如权利要求1所述的分布式自动扣款方法,其特征在于,所述S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤包括:
S31用于根据自动指令操作生成扣款结果指令的步骤。
6.如权利要求5所述的分布式自动扣款方法,其特征在于,所述S31用于根据自动指令操作生成扣款结果指令的步骤包括:
S311用于从自动生成指令队列中获取数据的步骤;
S312用于自动选择与获取数据匹配的指令规则并将账单进行多条指令处理的步骤;
S313用于通过自动选择的扣款平台,将指令发送至相应的扣款通道进行扣款操作的步骤。
7.如权利要求1所述的分布式自动扣款方法,其特征在于,所述S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤还包括:
S32用于根据手动指令操作生成扣款结果指令的步骤。
8.如权利要求7所述的分布式自动扣款方法,其特征在于,所述S32用于根据手动指令操作生成扣款结果指令的步骤包括:
S321用于通过接口服务进行操作的步骤;
S322用于手动选择与获取数据匹配的指令规则并根据规则进行扣款处理的步骤;
S323用于通过所述扣款处理生成扣款结果指令并进行结果指令推送操作的步骤。
9.如权利要求1所述的分布式自动扣款方法,其特征在于,所述S3用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的步骤还包括:
S33用于根据清贷指令操作生成扣款结果指令的步骤。
10.如权利要求9所述的分布式自动扣款方法,其特征在于,所述S33用于根据清贷指令操作生成扣款结果指令的步骤包括:
S331用于通过接口服务发起提前清贷操作的步骤;
S332用于通过接口生成提前清贷账单的步骤;
S333用于根据所述提前清贷账单进行扣款操作并生成扣款结果指令的步骤。
11.如权利要求1所述的分布式自动扣款方法,其特征在于,所述S4用于在不同扣款通道对所述扣款结果指令进行扣款操作的步骤包括:
S41通过扣款通道接收扣款结果指令并发送至对应的扣款结果队列;
S42若未接收到扣款结果指令,当查询扣款结果次数达到上限,则发送至异常处理队列;
S43若接收到扣款结果指令,将指令发送至扣款操作;在接收到指令数据后,进行校验处理,未发现异常则进行扣款操作;
S44扣款操作完成后指令返回并判断是否继续进行打包操作,若无须打包,推送指令数据至生成衍生操作,衍生成相应的衍生科目,配置规则生成账单规则,完成后进入结束清空操作。
12.如权利要求1所述的分布式自动扣款方法,其特征在于,还包括如下步骤:S5用于根据所述扣款指令操作完成后续处理的步骤。
13.如权利要求12所述的分布式自动扣款方法,其特征在于,所述S5用于根据所述扣款指令操作完成后续处理的步骤包括:
S51用于对扣款过程进行异常处理的步骤。
14.如权利要求12所述的分布式自动扣款方法,其特征在于,所述S5用于根据所述扣款指令操作完成后续处理的步骤还包括:
S52用于对扣款过程进行运维监控的步骤。
15.如权利要求12所述的分布式自动扣款方法,其特征在于,所述S5用于根据所述扣款指令操作完成后续处理的步骤还包括:
S53用于对扣款指令进行数据收集的步骤。
16.一种分布式自动扣款系统,其特征在于,包括:
用于解析并读取账单数据的模块;
用于根据读取到的账单数据生成扣款账单的模块;
用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块;
用于在不同扣款通道对所述扣款结果指令进行扣款操作的模块。
17.如权利要求16所述的分布式自动扣款系统,其特征在于,所述用于解析并读取账单数据的模块包括:
用于获取账单数据并进行自启动操作的子模块;
用于对账单数据进行筛选并生成队列的子模块。
18.如权利要求17所述的分布式自动扣款系统,其特征在于,所述用于对账单数据进行筛选并生成队列的子模块包括:
获取符合条件的账单日数据并导入生成账单数据队列的单元;
获取符合条件的逾期账单数据并导入自动生成指令队列的单元。
19.如权利要求16所述的分布式自动扣款系统,其特征在于,所述用于根据读取到的账单数据生成扣款账单的模块包括:
用于从生成账单数据队列中自动获取数据生成待处理订单的子模块;
用于将待处理订单根据账单属性选择相应产品的生成账单规则的子模块;
用于选择符合条件的规则生成相应的账单并对账单金额计算的子模块。
20.如权利要求16所述的分布式自动扣款系统,其特征在于,所述用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块包括:用于根据自动指令操作生成扣款结果指令的子模块。
21.如权利要求20所述的分布式自动扣款系统,其特征在于,所述用于根据自动指令操作生成扣款结果指令的子模块包括:
用于从自动生成指令队列中获取数据的单元;
用于自动选择与获取数据匹配的指令规则并将账单进行多条指令处理的单元;
用于通过自动选择的扣款平台,将指令发送至相应的扣款通道进行扣款操作的单元。
22.如权利要求16所述的分布式自动扣款系统,其特征在于,所述用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块还包括:用于根据手动指令操作生成扣款结果指令的子模块。
23.如权利要求22所述的分布式自动扣款系统,其特征在于,所述用于根据手动指令操作生成扣款结果指令的子模块包括:
用于通过接口服务进行操作的单元;
用于手动选择与获取数据匹配的指令规则并根据规则进行扣款处理的单元;
用于通过所述扣款处理生成扣款结果指令并进行结果指令推送操作的单元。
24.如权利要求16所述的分布式自动扣款系统,其特征在于,所述用于根据所述扣款账单进行扣款指令操作并生成扣款结果指令的模块还包括:用于根据清贷指令操作生成扣款结果指令的子模块。
25.如权利要求24所述的分布式自动扣款系统,其特征在于,所述用于根据清贷指令操作生成扣款结果指令的子模块包括:
用于通过接口服务发起提前清贷操作的单元;
用于通过接口生成提前清贷账单的单元;
用于根据所述提前清贷账单进行扣款操作并生成扣款结果指令的单元。
26.如权利要求16所述的分布式自动扣款系统,其特征在于,所述在不同扣款通道对所述扣款结果指令进行扣款操作的模块包括:
通过扣款通道接收扣款结果指令并发送至对应的扣款结果队列的子模块;
若未接收到扣款结果指令,当查询扣款结果次数达到上限,则发送至异常处理队列的子模块;
若接收到扣款结果指令,将指令发送至扣款操作;在接收到指令数据后,进行校验处理,未发现异常则进行扣款操作的子模块;
扣款操作完成后指令返回并判断是否继续进行打包操作,若无须打包,推送指令数据至生成衍生操作,衍生成相应的衍生科目,配置规则生成账单规则,完成后进入结束清空操作的子模块。
27.如权利要求16所述的分布式自动扣款系统,其特征在于,还包括用于根据所述扣款指令操作完成后续处理的模块。
28.如权利要求27所述的分布式自动扣款系统,其特征在于,所述用于根据所述扣款指令操作完成后续处理的模块包括:用于对扣款过程进行异常处理的子模块。
29.如权利要求27所述的分布式自动扣款系统,其特征在于,所述用于根据所述扣款指令操作完成后续处理的模块还包括:用于对扣款过程进行运维监控的子模块。
30.如权利要求27所述的分布式自动扣款系统,其特征在于,所述用于根据所述扣款指令操作完成后续处理的模块还包括:用于对扣款指令进行数据收集的子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810753304.3A CN109101296B (zh) | 2018-07-10 | 2018-07-10 | 分布式自动扣款方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810753304.3A CN109101296B (zh) | 2018-07-10 | 2018-07-10 | 分布式自动扣款方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101296A true CN109101296A (zh) | 2018-12-28 |
CN109101296B CN109101296B (zh) | 2022-03-29 |
Family
ID=64846156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810753304.3A Active CN109101296B (zh) | 2018-07-10 | 2018-07-10 | 分布式自动扣款方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101296B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932235A (zh) * | 2019-05-13 | 2020-11-13 | 中国移动通信集团湖北有限公司 | 业务处理的方法、数据访问器、状态管理器及计算设备 |
CN112508662A (zh) * | 2020-09-23 | 2021-03-16 | 上海维信荟智金融科技有限公司 | 基于账单扣款生成线上自动监控方法及系统 |
CN113822660A (zh) * | 2021-10-09 | 2021-12-21 | 京东科技控股股份有限公司 | 数据处理的方法、装置、电子设备及介质 |
CN113888276A (zh) * | 2021-10-12 | 2022-01-04 | 四川新网银行股份有限公司 | 一种批量扣款的分布式分片处理方法、系统及设备 |
CN115941687A (zh) * | 2022-11-15 | 2023-04-07 | 浪潮云信息技术股份公司 | 云平台服务账单处理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074311A1 (en) * | 2001-10-16 | 2003-04-17 | Newattitude Inc. | Self-administered automatic payroll deduction |
CN105405007A (zh) * | 2015-11-19 | 2016-03-16 | 成都连银信息技术有限公司 | 支持多种支付通道的统一账务处理系统 |
US20170076401A1 (en) * | 2015-09-16 | 2017-03-16 | PerPay, Inc. | Payment system with automated payroll deduction |
CN107274279A (zh) * | 2017-05-27 | 2017-10-20 | 上海非码网络科技有限公司 | 一种基于多个移动支付平台的对账方法及系统、电子设备 |
CN107423957A (zh) * | 2016-12-30 | 2017-12-01 | 语联网(武汉)信息技术有限公司 | 一种灵活支付结算的业务运行系统 |
CN107784748A (zh) * | 2016-08-24 | 2018-03-09 | 深圳市图灵奇点智能科技有限公司 | 一种基于分布式记账的自助收费终端 |
CN108009818A (zh) * | 2017-10-30 | 2018-05-08 | 牟林 | 一种基于分布式网络的线上支付方法及系统 |
-
2018
- 2018-07-10 CN CN201810753304.3A patent/CN109101296B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074311A1 (en) * | 2001-10-16 | 2003-04-17 | Newattitude Inc. | Self-administered automatic payroll deduction |
US20170076401A1 (en) * | 2015-09-16 | 2017-03-16 | PerPay, Inc. | Payment system with automated payroll deduction |
CN105405007A (zh) * | 2015-11-19 | 2016-03-16 | 成都连银信息技术有限公司 | 支持多种支付通道的统一账务处理系统 |
CN107784748A (zh) * | 2016-08-24 | 2018-03-09 | 深圳市图灵奇点智能科技有限公司 | 一种基于分布式记账的自助收费终端 |
CN107423957A (zh) * | 2016-12-30 | 2017-12-01 | 语联网(武汉)信息技术有限公司 | 一种灵活支付结算的业务运行系统 |
CN107274279A (zh) * | 2017-05-27 | 2017-10-20 | 上海非码网络科技有限公司 | 一种基于多个移动支付平台的对账方法及系统、电子设备 |
CN108009818A (zh) * | 2017-10-30 | 2018-05-08 | 牟林 | 一种基于分布式网络的线上支付方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932235A (zh) * | 2019-05-13 | 2020-11-13 | 中国移动通信集团湖北有限公司 | 业务处理的方法、数据访问器、状态管理器及计算设备 |
CN111932235B (zh) * | 2019-05-13 | 2024-04-19 | 中国移动通信集团湖北有限公司 | 业务处理的方法、数据访问器、状态管理器及计算设备 |
CN112508662A (zh) * | 2020-09-23 | 2021-03-16 | 上海维信荟智金融科技有限公司 | 基于账单扣款生成线上自动监控方法及系统 |
CN113822660A (zh) * | 2021-10-09 | 2021-12-21 | 京东科技控股股份有限公司 | 数据处理的方法、装置、电子设备及介质 |
CN113822660B (zh) * | 2021-10-09 | 2024-05-24 | 京东科技控股股份有限公司 | 数据处理的方法、装置、电子设备及介质 |
CN113888276A (zh) * | 2021-10-12 | 2022-01-04 | 四川新网银行股份有限公司 | 一种批量扣款的分布式分片处理方法、系统及设备 |
CN113888276B (zh) * | 2021-10-12 | 2024-06-28 | 四川新网银行股份有限公司 | 一种批量扣款的分布式分片处理方法、系统及设备 |
CN115941687A (zh) * | 2022-11-15 | 2023-04-07 | 浪潮云信息技术股份公司 | 云平台服务账单处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109101296B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101296A (zh) | 分布式自动扣款方法及系统 | |
CN110390596B (zh) | 一种金融期货交易系统 | |
CN106682067B (zh) | 一种基于交易数据的机器学习反欺诈监测系统 | |
CN105224445B (zh) | 分布式跟踪系统 | |
CN104639374B (zh) | 一种应用程序部署管理系统 | |
WO2021001845A1 (en) | System and method for modelling and monitoring processes in organizations using digital twins | |
CN108287756A (zh) | 一种处理任务的方法及装置 | |
US6411985B1 (en) | Interserver data association apparatus | |
CN109725899B (zh) | 数据流式处理方法及装置 | |
CN107704392A (zh) | 一种测试用例的处理方法及服务器 | |
CN107679192A (zh) | 多集群协同数据处理方法、系统、存储介质及设备 | |
CN110276594A (zh) | 一种基于Ansible的银行业务运维系统及方法 | |
CN107688487A (zh) | 用于恢复数据库会话的状态的方法和系统 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN103646111A (zh) | 大数据环境下实现实时数据关联的系统及方法 | |
CN111367989B (zh) | 一种实时数据指标计算系统和方法 | |
CN110634071A (zh) | 一种基于自动量化交易平台的全市场多品种智能金融资管系统 | |
CN102117459A (zh) | 风险控制系统及方法 | |
CN107547606A (zh) | 数据处理方法、集群管理器、资源管理器、数据处理系统 | |
CN108334370A (zh) | 一种分布式测试系统的软件自动增量更新升级方法 | |
CN106250287A (zh) | 一种日志信息处理装置 | |
CN110619580A (zh) | 一种基于智能数据处理平台的全市场多品种金融资管系统 | |
CN111552628A (zh) | 一种针对图数据库及图服务接口进行分布式压测系统及方法 | |
CN104050193B (zh) | 生成报文的方法和实现该方法的数据处理系统 | |
CN109359019A (zh) | 应用程序性能监控方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |