CN110413317B - 基于配置化的流程接口调用方法 - Google Patents
基于配置化的流程接口调用方法 Download PDFInfo
- Publication number
- CN110413317B CN110413317B CN201910709884.0A CN201910709884A CN110413317B CN 110413317 B CN110413317 B CN 110413317B CN 201910709884 A CN201910709884 A CN 201910709884A CN 110413317 B CN110413317 B CN 110413317B
- Authority
- CN
- China
- Prior art keywords
- interface
- flow
- call
- calling
- interfaces
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/4482—Procedural
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及基于配置化的流程接口调用方法,包括:A.将每个流程接口的调用通过线程池进行管理,使每个流程接口在调用完成后能够提供一个返回值;B.将所有流程接口分为不同的调用批次,并在数据库中配置各批次的调用顺序值;C.线程池中通过不同的线程,按照所述配置的调用顺序值依次调用各批次的流程接口,并接收各流程接口调用完成后的返回值。本发明能够根据流程接口的不同类型进行灵活调用,有效提高了调用效率,同时明显节省了开发成本。
Description
技术领域
本发明涉及流程接口的调用方法,具体讲是基于配置化的流程接口调用方法。
背景技术
在软件开发领域中,目前对流程接口的调用主要有以下两种:第一种,采用数据库配置接口开关。在已定的逻辑处理流程中,查询接口开关的标志,通过标志判断是否调用该接口。第二种,接口采用同一的调用方式(如post访问方式)。这种方式是将接口的调用控制放在配置文件中。
第一种方式的缺点在于由于接口的调用逻辑已经确定,当需要变更接口的调用顺序或新增接口调用时,程序不能仅通过配置的方式灵活实现。第二种方式的缺点在于调用方式单一,当必须使用多种方式调用接口时,由于没有统一的方式进行处理,必须新增加配置文件或修改原有配置文件,因此会增加***的维护成本,提高***发生问题的概率。同时,由于是在配置文件中对接口进行控制,当接口的调用发生变化时,还需要对调用的程序进行修改,没有实现灵活调用。
由此可知,现有的接口调用方式都没有实现对并行接口和串行接口的灵活调用。
发明内容
本发明提供了一种基于配置化的流程接口调用方法,以根据流程接口的不同类型进行灵活调用,提高调用效率,节省开发成本。
本发明基于配置化的流程接口调用方法,包括:
A.将每个流程接口的调用通过线程池进行管理,使每个流程接口在调用完成后能够提供一个返回值;
B.将所有流程接口分为不同的调用批次,并在数据库中配置各批次的调用顺序值;对流程接口的调用进行配置化管理,使其能够更好的兼容不同批次流程接口调用存在先后顺序的问题。其中可以按照业务流程的具体需求或流程接口之间有无依赖的原则将各流程接口分为不同的调用批次,例如两个流程接口之间存在依赖性关系,则可把这两个流程接口分在不同调用批次中。
C.线程池中通过不同的线程,按照所述配置的调用顺序值依次调用各批次的流程接口,并接收各流程接口调用完成后的返回值。
本发明的方法能够采用了统一的处理方式对并行和串行的流程接口进行灵活调用,调用方式可以为post、dubbo等。并解决了流程中调用接口过多,影响效率的问题。
进一步的,步骤A中的各流程接口均通过重写JAVA中Callable接口的call()方法来提供所述的返回值。
具体的,所述重写Callable接口的call()方法的步骤为:
A1.创建Callable接口的实例化对象和Future接口的实例化对象;
A2.将Callable接口的实例化对象传入Future接口的实例化对象的构造方法中,使Future接口的实例化对象能够对多线程进行管控,如:任务取消、判断任务是否执行、获取调用结果等;
A3.将定义的业务类传入Future接口的实例化对象中,使Future接口的实例化对象能够对业务类的返回结果进行操作。
优选的,步骤C中,通过Future接口实例化对象的get()方法获取和处理调用流程接口后的返回值。其中get()方法为Future接口实例化对象中的现有方法。
进一步的,对各流程接口进行定义时,根据业务类型对各流程接口的入参和出参的数据结构进行分别定义,例如有的流程接口入参和出参的数据结构为实体类,有的则为Map类型,根据具体的业务需要定义参数类型,以便于在接收流程接口的返回值时,能够区分不同接口的返回结果。
优选的,步骤C中,对同一批次的流程接口进行并发调用,这样在同一批次中的不同流程接口之间不用相互等待被调用,以减少多个流程接口调用时的总耗时。
本发明基于配置化的流程接口调用方法,通过采用线程池的方式管理流程接口,对同一批次的流程接口进行并发调用,不同的流程接口之间不用相互等待被调用,因此明显减少了多个流程接口调用时的总耗时,同时,结合配置信息,对不同批次间的流程接口进行调用顺序的定义,实现了批次间流程接口的串行调用,同时还可以根据需要,对并行和串行的流程接口进行灵活调用,合理利用了资源。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明基于配置化的流程接口调用方法的流程图。
具体实施方式
如图1所示本发明基于配置化的流程接口调用方法,包括:
A.将每个流程接口的调用通过线程池进行管理,使每个流程接口在调用完成后能够提供一个返回值。每个流程接口均通过重写java.util.concurrent.Callable接口的call()方法来提供所述的返回值,具体为:
A1.创建Callable接口的实例化对象和Future接口的实例化对象;
A2.将Callable接口的实例化对象传入Future接口的实例化对象的构造方法中,使Future接口的实例化对象能够对多线程进行管控,如:任务取消、判断任务是否执行、获取调用结果等;
A3.将定义的业务类传入Future接口的实例化对象中,使Future接口的实例化对象能够对业务类的返回结果进行操作。然后通过线程池(ExecutorService类)调用submit方法启动线程,对流程接口的调用进行管理。通过ExecutorService类启动线程的方法有两种:execute方法和submit方法,其中submit方法有返回值,而execute方法没有返回值,因此采用submit方法启动线程更有利和更方便取回流程接口调用后的返回值并进行后续处理。
在对各流程接口进行定义时,根据业务类型对各流程接口的入参和出参的数据结构进行分别定义,例如,有的流程接口入参和出参的数据结构为实体类,有的则为Map类型,根据具体的业务需要定义参数类型,以便于在接收流程接口的返回值时,能够区分不同接口的返回结果。
B.将所有流程接口分为不同的调用批次,包括按照业务流程的具体需求或流程接口之间有无依赖的原则将各流程接口分为不同的调用批次,例如两个流程接口之间存在依赖性关系,则可把这两个流程接口分在不同调用批次中,并在数据库中配置各批次的调用顺序值。
C.线程池中通过不同的线程,按照所述配置的调用顺序值依次调用各批次的流程接口。在调用流程接口时,查询数据库中配置的该流程接口对应的顺序值,然后根据定义的业务规则进行判断,例如返回的值为TRUE,则调用该流程接口。此步骤的作用在于运用配置对流程接口的调用进行配置化管理,使其能够更好的兼容不同批次流程接口调用存在先后顺序的问题,如:对于批次a(包含三个流程接口),设定调用顺序为2,对于批次b(包含4个流程接口),设定调用顺位为1,在配置时只需在程序中设定调用顺序由小到大,那么执行的结果就是先并发执行批次b的4个流程接口,然后再执行批次a的3个流程接口。并且对同一批次中的流程接口采用并发调用,以减少多个流程接口调用时的总耗时。
然后通过Future接口实例化对象的get()方法获取和处理调用流程接口后的返回值。其中get()方法为Future接口实例化对象中的现有方法。
本发明的方法能够采用了统一的处理方式对并行和串行的流程接口进行灵活调用,调用方式可以为post、dubbo等。并解决了流程中调用接口过多,影响效率的问题。
Claims (5)
1.基于配置化的流程接口调用方法,其特征包括:
A.将每个流程接口的调用通过线程池进行管理,使每个流程接口在调用完成后能够提供一个返回值;
B.按照业务流程的具体需求或流程接口之间有无依赖的原则将所有流程接口分为不同的调用批次,并在数据库中配置各批次的调用顺序值;
C.线程池中通过不同的线程,按照所述配置的调用顺序值依次调用各批次的流程接口,对同一批次的流程接口进行并发调用,并接收各流程接口调用完成后的返回值。
2.如权利要求1所述的基于配置化的流程接口调用方法,其特征为:步骤A中的各流程接口均通过重写JAVA中Callable接口的call()方法来提供所述的返回值。
3.如权利要求2所述的基于配置化的流程接口调用方法,其特征为:所述重写Callable接口的call()方法的步骤为:A1.创建Callable接口的实例化对象和Future接口的实例化对象;A2.将Callable接口的实例化对象传入Future接口的实例化对象的构造方法中,使Future接口的实例化对象能够对多线程进行管控;A3.将定义的业务类传入Future接口的实例化对象中,使Future接口的实例化对象能够对业务类的返回结果进行操作。
4.如权利要求3所述的基于配置化的流程接口调用方法,其特征为:步骤C中,通过Future接口实例化对象的get()方法获取和处理调用流程接口后的返回值。
5.如权利要求1所述的基于配置化的流程接口调用方法,其特征为:对各流程接口进行定义时,根据业务类型对各流程接口的入参和出参的数据结构进行分别定义。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910709884.0A CN110413317B (zh) | 2019-08-02 | 2019-08-02 | 基于配置化的流程接口调用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910709884.0A CN110413317B (zh) | 2019-08-02 | 2019-08-02 | 基于配置化的流程接口调用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413317A CN110413317A (zh) | 2019-11-05 |
CN110413317B true CN110413317B (zh) | 2023-06-06 |
Family
ID=68365381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910709884.0A Active CN110413317B (zh) | 2019-08-02 | 2019-08-02 | 基于配置化的流程接口调用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413317B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240758A (zh) * | 2018-07-25 | 2019-01-18 | 武汉精测电子集团股份有限公司 | 一种支持插件接口同步异步统一调用的方法及微内核架构 |
CN109597753A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 接口测试的方法、装置、计算机设备以及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8286198B2 (en) * | 2008-06-06 | 2012-10-09 | Apple Inc. | Application programming interfaces for data parallel computing on multiple processors |
US20100153957A1 (en) * | 2008-12-16 | 2010-06-17 | Sensormatic Electronics Corporation | System and method for managing thread use in a thread pool |
US8776033B2 (en) * | 2010-12-23 | 2014-07-08 | International Business Machines Corporation | Batch dispatch of java native interface calls |
US9736034B2 (en) * | 2012-09-19 | 2017-08-15 | Oracle International Corporation | System and method for small batching processing of usage requests |
CN106970838A (zh) * | 2017-05-15 | 2017-07-21 | 杭州时趣信息技术有限公司 | 一种搜索引擎调用接口时线程的调度方法及装置 |
CN108628675A (zh) * | 2018-05-14 | 2018-10-09 | 五八有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN109343955B (zh) * | 2018-09-14 | 2021-03-16 | 阿里巴巴(中国)有限公司 | 推荐服务调用方法、介质、装置和计算设备 |
-
2019
- 2019-08-02 CN CN201910709884.0A patent/CN110413317B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240758A (zh) * | 2018-07-25 | 2019-01-18 | 武汉精测电子集团股份有限公司 | 一种支持插件接口同步异步统一调用的方法及微内核架构 |
CN109597753A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 接口测试的方法、装置、计算机设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
基于统一访问技术的MUSE数据处理总控平台的实现研究;蔡能健;《中国优秀硕士学位论文全文数据库 基础科学辑》;A007-1 * |
用线程池解决服务器并发请求的方案设计;刘新强 等;《现代电子技术》;第34卷(第15期);第141-143页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110413317A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103294544B (zh) | 嵌入式***及其中断处理方法与装置 | |
CN108280150B (zh) | 一种分布式异步业务分发方法及*** | |
CN1710535A (zh) | 一种gis应用***及其开发方法 | |
CN112738060B (zh) | 微服务数据的处理方法、装置、微服务处理平台及介质 | |
CN106803790A (zh) | 一种集群***的升级控制方法及装置 | |
CN110990142A (zh) | 并发任务处理方法、装置、计算机设备和存储介质 | |
CN113361838A (zh) | 业务风控方法、装置、电子设备和存储介质 | |
CN101216770A (zh) | 一种工作流引擎 | |
CN112529711B (zh) | 基于区块链虚拟机复用的交易处理方法及装置 | |
CN104580757A (zh) | 一种电话状态分享方法和装置 | |
CN109889406A (zh) | 用于管理网络连接的方法、装置、设备和存储介质 | |
CN101216780A (zh) | 在对称多处理体系下实现多实例线程通信的方法及装置 | |
CN110413317B (zh) | 基于配置化的流程接口调用方法 | |
CN103927244A (zh) | 一种基于动态代理实现的插件调度过程监控的方法 | |
WO2024037132A1 (zh) | 工作流处理方法、装置、设备、存储介质和程序产品 | |
CN111008015B (zh) | 一种基于前端技术实现的微前端应用框架 | |
CN114912618A (zh) | 一种量子计算任务调度方法、装置及量子计算机操作*** | |
CN109241727B (zh) | 权限设置方法及装置 | |
CN116680209A (zh) | 基于wasm的多智能合约实例管理方法 | |
CN115373822A (zh) | 任务调度方法、任务处理方法、装置、电子设备和介质 | |
CN115981808A (zh) | 调度方法、装置、计算机设备和存储介质 | |
US11531674B2 (en) | System and method for supporting rollback of changes made to target systems via an integration platform | |
CN110956025A (zh) | 一种基于流程模板复用的方法 | |
EP4086753A1 (en) | Decision scheduling customization method and device based on information flow | |
CN108512688A (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 |