CN107665243B - 一种基于数据库访问的跨语言环境数据交互方法 - Google Patents
一种基于数据库访问的跨语言环境数据交互方法 Download PDFInfo
- Publication number
- CN107665243B CN107665243B CN201710813793.2A CN201710813793A CN107665243B CN 107665243 B CN107665243 B CN 107665243B CN 201710813793 A CN201710813793 A CN 201710813793A CN 107665243 B CN107665243 B CN 107665243B
- Authority
- CN
- China
- Prior art keywords
- data
- result
- database table
- database
- consumer
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据库访问的跨语言环境数据交互方法,属于进程间数据交互技术领域,包括:基于MySql数据库,创建数据库表Data和Result,并基于不同的语言执行环境分别生成生产者进程J和消费者进程P;生产者进程J往数据库表Data中写入需要处理的数据M并读取数据库表Result中的处理结果;消费者进程P对Data表中的数据M进行处理并将处理结果写入数据库表Result中。本发明基于语言执行环境均支持的数据库访问接口,实现不同语言执行环境进程之间的通信,具有通用性强的特点。由于编程语言在不同操作系统下的执行环境,都会有一致的数据库访问接口,具有扩展性强的特点。
Description
技术领域
本发明涉及进程间数据交互技术领域,特别涉及一种基于数据库访问的跨语言环境数据交互方法。
背景技术
进程间的数据交互是指:不同进程之间交换或传播信息。进程之间进行数据交互,可以完成进程间的同步或协作等操作。由于不同的编程语言所在的执行环境不同,所以不同语言实现的程序执行后在不同的进程之中。使用不同编程语言实现的程序之间需要交互,就必须进行进程间的数据交换。
进程具有独立的用户空间,不同进程的用户空间是不能直接互相访问的。进程直接进行数据交互时,通常通过双方进程都可以直接访问的外部空间进行。
现有的进程间数据交互方法主要通过进程间通信实现。进程间通信主要指通过管道、信号量、消息队列等操作系统的内核功能来实现。但是,这些方法存在的缺陷在于:需要与具体操作系统的特性密切相关,扩展性较差。还有一些方法通过磁盘上的第三方文件进行进程间的数据交互,但是这种方法存在的缺陷在于:需要自己定义交互数据的格式和访问接口,通用性较差。
发明内容
本发明的目的在于提供一种基于数据库访问的跨语言环境数据交互方法,以提高跨语言环境数据交互的普适性。
为实现以上目的,本发明采用的技术方案为:提供一种基于数据库访问的跨语言环境数据交互方法,包括:
S1、基于MySql数据库,创建数据库表Data和Result,并基于不同的语言执行环境分别生成生产者进程J和消费者进程P;
S2、所述生产者进程J往数据库表Data中写入需要处理的数据M并读取数据库表Result中的处理结果;
S3、所述消费者进程P对Data表中的数据M进行处理并将处理结果写入数据库表Result中。
其中,在所述步骤S3之后,还包括:
S4、所述消费者进程P监控数据库表Data,当有新写入的数据M时,从数据库表Data中读出进行处理,并将处理结果写入数据库表Result中。
其中,所述的步骤S1,具体包括:
基于MySql数据库,创建所述数据库表Data和Result,;
基于Java语言环境,使用Java代码生成所述生产者进程J;
基于Python语言环境,使用Python代码生成所述消费者进程P。
其中,所述的步骤S2,具体包括:
所述生产者进程J获取需要处理的数据存入数据库表Data中,并等待消费者进程P的处理结果;
在无数据需要处理时,向所述消费者进程P发送结束指令。
其中,所述的步骤S3,具体包括:
所述消费者进程P从数据库表Data中获取需要处理的数据M进行处理,得到处理结果;
所述消费者进程P将处理结果存入数据库表Result中以供所述生产者进程J查看;
当所述消费者进程P从数据库表Data中获取的数据为结束进程标志数据N时,则停止处理数据,并结束进程执行。
与现有技术相比,本发明存在以下技术效果:本发明通过MySql数据库,基于语言执行环境均支持的数据库访问接口,实现不同语言执行环境进程之间的通信,具有通用性强的特点。而且本发明中基于语言执行环境各自的数据库访问接口,通过访问统一的数据库表来实现数据交互。由于编程语言在不同操作系统下的执行环境,都会有一致的数据库访问接口。所以本发明可以很容易地扩展到其他操作系统和语言执行环境中去,具有扩展性强的特点。
附图说明
下面结合附图,对本发明的具体实施方式进行详细描述:
图1是本发明中一种基于数据库访问的跨语言环境数据交互方法的流程示意图;
图2是本发明中生产者进程J与消费者进程P的数据库访问关系示意图;
图3是本发明中生产者进程J处理流程示意图;
图4是本发明中消费者进程P处理流程示意图。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种基于数据库访问的跨语言环境数据交互方法,包括如下步骤S1至S3:
S1、基于MySql数据库,创建数据库表Data和Result,并基于不同的语言执行环境分别生成生产者进程J和消费者进程P;
S2、所述生产者进程J往数据库表Data中写入需要处理的数据M并读取数据库表Result中的处理结果;
S3、所述消费者进程P对Data表中的数据M进行处理并将处理结果写入数据库表Result中。
具体地,如图2所示,生产者进程J担任生产者角色提供数据,消费者进程P担任消费者角色处理数据,数据库表Data用来保存需要处理的数据,数据库表Result用来存储数据的处理结果。其中生产者进程J需要将数据写入数据库表Data中,然后从数据库表Result读取数据的处理结果。消费者进程P从数据库表Data中读取需要处理的数据M,然后将数据M的处理结果写入数据库表Result中。
如图3所示,生产者进程J的整个处理流程。具体步骤如下:
a、生产者进程J处理开始;
b、获取需要处理的数据M,该数据根据不同的应用需求,可以从某个数据文件中获取,也可以从网络接口获取;
c、将数据M存入数据库表Data中;
d、监控数据库表Result,查看是否有消费者进程P对数据M的处理结果R;
e、如果获取数据M的处理结果R,则读取结果R,并将数据库表Result中的R数据删除,然后跳转到步骤g继续执行,否则查看是否监控时间超过3秒;
f、如果监控时间未超过3秒,跳转到步骤d继续执行;否则,说明进程P处理数据超时,记录日志然后跳转到步骤g继续执行;
g、查看是否还有数据需要处理;
h、如果有数据需要继续处理,跳转到步骤b继续执行;如果没有,则跳转到步骤i继续执行。
i、将结束进程标志数据N写入数据库表Data中;
j、监控数据库表Result,查看是否有消费者进程P结束的信息RN;
k、如果获取消费者进程P结束的信息RN,跳转到步骤m继续执行;否则,查看是否监控时间超过3秒;
l、如果监控时间未超过3秒,跳转到步骤k继续执行;否则,说明进程P处理数据超时,记录日志然后跳转到步骤m继续执行;
m、进程J处理结束。
具体地,如图4所示,消费者进程P的整个处理流程如下:
(1)进程P处理开始;
(2)监控数据库的Data表,查看是否有进程J写入的需要处理的数据;
(3)如果从Data表获取数据X,跳转到步骤(4)继续进行;否则,跳转到步骤(2)继续进行;
(4)查看数据X是否为结束标志N;
(5)如果数据X是结束标志N,则跳转到步骤(8)继续进行;否则跳转到步骤(6)继续进行;
(6)处理数据X,得到处理结果R;
(7)将处理结果R存入数据库表Result,然后跳转到步骤(2)继续进行;
(8)将消费者进程P的结束信息RN写入数据库表Result,然后跳转到步骤(9)继续进行;
(9)消费者进程P处理结束。
需要说明的是,不同的语言执行环境之间通信,往往没有直接的接口。但是各种语言执行环境都会有针对数据库的存储接口。本实施例通过MySql数据库,基于语言执行环境均支持的数据库访问接口,实现不同语言执行环境进程之间的通信。本实施例使用数据库作为不同语言执行环境之间数据通信的媒介,具有通用性强的特点。
另外,本实施例基于各个语言执行环境各自的数据库访问接口,通过访问统一的数据库表来实现数据交互。由于编程语言在不同操作系统下的执行环境,都会有一致的数据库访问接口。所以本实施例可以很容易地扩展到其他操作系统和语言执行环境中去,具有扩展性强的特点。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于数据库访问的跨语言环境数据交互方法,其特征在于,包括:
S1、基于MySql数据库,创建数据库表Data和Result,并基于不同的语言执行环境分别生成生产者进程J和消费者进程P;
S2、所述生产者进程J往数据库表Data中写入需要处理的数据M并读取数据库表Result中的处理结果,具体包括:
a、生产者进程J处理开始;
b、获取需要处理的数据M;
c、将数据M存入数据库表Data中;
d、监控数据库表Result,查看是否有消费者进程P对数据M的处理结果R;
e、如果获取数据M的处理结果R,则读取结果R,并将数据库表Result中的R数据删除,然后跳转到步骤g继续执行,否则查看是否监控时间超过3秒;
f、如果监控时间未超过3秒,跳转到步骤d继续执行;否则,说明进程P处理数据超时,记录日志然后跳转到步骤g继续执行;
g、查看是否还有数据需要处理;
h、如果有数据需要继续处理,跳转到步骤b继续执行;如果没有,则跳转到步骤i继续执行;
i、将结束进程标志数据N写入数据库表Data中;
j、监控数据库表Result,查看是否有消费者进程P结束的信息RN;
k、如果获取消费者进程P结束的信息RN,跳转到步骤m继续执行;否则,查看是否监控时间超过3秒;
l、如果监控时间未超过3秒,跳转到步骤k继续执行;否则,说明进程P处理数据超时,记录日志然后跳转到步骤m继续执行;
m、进程J处理结束;
S3、所述消费者进程P对Data表中的数据M进行处理并将处理结果写入数据库表Result中。
2.如权利要求1所述的方法,其特征在于,在所述步骤S3之后,还包括:
S4、所述消费者进程P监控数据库表Data,当有新写入的数据M时,从数据库表Data中读出进行处理,并将处理结果写入数据库表Result中。
3.如权利要求1所述的方法,其特征在于,所述的步骤S1,具体包括:
基于MySql数据库,创建所述数据库表Data和Result;
基于Java语言环境,使用Java代码生成所述生产者进程J;
基于Python语言环境,使用Python代码生成所述消费者进程P。
4.如权利要求1所述的方法,其特征在于,所述的步骤S2,具体包括:
所述生产者进程J获取需要处理的数据存入数据库表Data中,并等待消费者进程P的处理结果;
在无数据需要处理时,向所述消费者进程P发送结束指令。
5.如权利要求1所述的方法,其特征在于,所述的步骤S3,具体包括:
所述消费者进程P从数据库表Data中获取需要处理的数据M进行处理,得到处理结果;
所述消费者进程P将处理结果存入数据库表Result中以供所述生产者进程J查看;
当所述消费者进程P从数据库表Data中获取的数据为结束进程标志数据N时,则停止处理数据,并结束进程执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813793.2A CN107665243B (zh) | 2017-09-11 | 2017-09-11 | 一种基于数据库访问的跨语言环境数据交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710813793.2A CN107665243B (zh) | 2017-09-11 | 2017-09-11 | 一种基于数据库访问的跨语言环境数据交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107665243A CN107665243A (zh) | 2018-02-06 |
CN107665243B true CN107665243B (zh) | 2021-03-09 |
Family
ID=61097332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710813793.2A Active CN107665243B (zh) | 2017-09-11 | 2017-09-11 | 一种基于数据库访问的跨语言环境数据交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107665243B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032554B (zh) * | 2019-04-10 | 2022-04-01 | 北京字节跳动网络技术有限公司 | 数据仓库表的管理方法、装置、存储介质及电子设备 |
CN110032458B (zh) * | 2019-04-12 | 2020-07-10 | 重庆天蓬网络有限公司 | 一种php跨语言统一调用系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574037A (zh) * | 2014-10-16 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及装置 |
CN106648476A (zh) * | 2017-01-20 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种生产者消费者模式优化方法及系统 |
CN106802833A (zh) * | 2017-01-20 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种生产者消费者模式优化方法和系统 |
CN107122457A (zh) * | 2017-04-26 | 2017-09-01 | 努比亚技术有限公司 | 记录网络用户行为数据的方法及其装置、计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11341132B2 (en) * | 2015-09-01 | 2022-05-24 | Sybase, Inc. | Generating a producer-driven execution plan from a consumer-driven iterator-based execution plan |
-
2017
- 2017-09-11 CN CN201710813793.2A patent/CN107665243B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574037A (zh) * | 2014-10-16 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及装置 |
CN106648476A (zh) * | 2017-01-20 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种生产者消费者模式优化方法及系统 |
CN106802833A (zh) * | 2017-01-20 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种生产者消费者模式优化方法和系统 |
CN107122457A (zh) * | 2017-04-26 | 2017-09-01 | 努比亚技术有限公司 | 记录网络用户行为数据的方法及其装置、计算机可读介质 |
Non-Patent Citations (1)
Title |
---|
Java Producer, Stompy Python Consumer, ActiveMQ;stackoverflow;《https://stackoverflow.com/questions/11839603/java-producer-stompy-python-consumer-activemq》;20120830;第1页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107665243A (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3353672B1 (en) | Method and apparatus for transferring data between databases | |
US9015695B2 (en) | Information processing apparatus and information processing method | |
CN108984652B (zh) | 一种可配置数据清洗系统和方法 | |
CN109471851B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN111026931B (zh) | 一种数据查询方法、装置、设备及介质 | |
US20140156603A1 (en) | Method and an apparatus for splitting and recovering data in a power system | |
CN105630475B (zh) | 一种数据标签组织系统及组织方法 | |
CN110765206A (zh) | 一种数据同步系统、方法、装置、设备及存储介质 | |
CN107665243B (zh) | 一种基于数据库访问的跨语言环境数据交互方法 | |
CN110955714A (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN103095726A (zh) | 一种协议解析器的处理方法和装置 | |
CN114238487A (zh) | 数据库卸数的方法、装置、系统、存储介质及程序产品 | |
CN107391529B (zh) | 一种实现对象关系映射orm的方法及装置 | |
CN106776779B (zh) | 基于Mac平台的JSON数据生成实体文件的方法 | |
US20180321916A1 (en) | Method, computer readable storage medium, computer program product and computer | |
US20110209135A1 (en) | Program Change Management Apparatus, Computer Readable Record Medium Storing Program Change Management Program, And Program Change Management Method | |
US9195711B2 (en) | Persisting and retrieving arbitrary slices of nested structures using a column-oriented data store | |
CN109408778A (zh) | 一种基于可视化配置的文档生成控制系统及方法 | |
US11157506B2 (en) | Multiform persistence abstraction | |
CN109086380B (zh) | 对历史数据进行压缩存储的方法及系统 | |
US11080299B2 (en) | Methods and apparatus to partition a database | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN108062329B (zh) | 一种数据导入方法及装置 | |
US8930419B2 (en) | Write instruction datasource for database write procedure | |
CN104346142A (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 | ||
CB02 | Change of applicant information |
Address after: 230000 Yafu Park, Juchao Economic Development Zone, Chaohu City, Hefei City, Anhui Province Applicant after: ANHUI HUISHI JINTONG TECHNOLOGY Co.,Ltd. Address before: 102, room 602, C District, Hefei National University, Mount Huangshan Road, 230000 Hefei Road, Anhui, China Applicant before: ANHUI HUISHI JINTONG TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |