CN103473116A - 一种大数据量数据远程调用方法及装置 - Google Patents
一种大数据量数据远程调用方法及装置 Download PDFInfo
- Publication number
- CN103473116A CN103473116A CN2013104126343A CN201310412634A CN103473116A CN 103473116 A CN103473116 A CN 103473116A CN 2013104126343 A CN2013104126343 A CN 2013104126343A CN 201310412634 A CN201310412634 A CN 201310412634A CN 103473116 A CN103473116 A CN 103473116A
- Authority
- CN
- China
- Prior art keywords
- call
- far call
- file
- cache
- far
- 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
Images
Abstract
本发明涉及一种大数据量数据远程调用方法及装置,包括以下步骤:远程调用客户端向远程调用服务器发送调用请求,请求调用命令脚本文件;远程调用服务器根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,转入步骤3,否则,采用远程调用方式获得调用命令脚本生成的调用结果;获取远程调用服务器上本地时间的缓存时间戳,根据缓存时间戳生成缓存文件;将通过调用命令脚本文件生成的调用结果存储在缓存文件中,检测命令脚本文件是否调用完毕,如果调用完毕,读取调用结果,删除缓存文件,否则,休眠预定的时间后继续检测。本发明能够加快大数据量远程数据调用的速度,提高系统工作效率。
Description
技术领域
本发明涉及一种数据远程调用方法,特别涉及一种大数据量数据远程调用方法及装置。
背景技术
用Java编写应用时,如果需要在程序中调用另一个现成的可执行程序或系统命令,可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:
Process process=Runtime.getRuntime().exec(".//p.exe");
在上面的程序中,第一行的“.//p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。
上述方法是JDK提供的唯一可以调用外部的应用和程序的途径。在调用外部程序或系统命令的过程中,需要将执行返回的结果返回给调用者本身,此过程称为数据交换。数据交换较小的时候,使用Runtime.getRuntime().exec()方法调用速度较快,但是如果需要交换大数据量较大,则Runtime.getRuntime().exec()方法运行速度极慢。当数据交换的量达到临界值时,Runtime.getRuntime().exec()方法执行将无限制等待,无法返回结果。通过实际测试,在数据交换超过10K时,其执行速度已经超过了30s。当数据超过150K时,则30分钟都无法执行完成。
发明内容
本发明所要解决的技术问题是提供一种提高大数据量数据远程调用时执行速度的大数据量数据远程调用方法及装置。
本发明解决上述技术问题的技术方案如下:一种大数据量数据远程调用方法,包括以下步骤:
步骤1:远程调用客户端向远程调用服务器发送调用请求,请求调用远程调用服务器上的命令脚本文件;
步骤2:远程调用服务器根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,转入步骤3,否则,采用远程调用方式获得调用命令脚本生成的调用结果;
步骤3:远程调用服务器获取远程调用服务器上本地时间的缓存时间戳,根据缓存时间戳生成缓存文件;
步骤4:远程调用服务器将通过调用命令脚本文件生成的调用结果存储在缓存文件中,并检测命令脚本文件是否调用完毕,如果调用完毕,转入步骤5,否则,休眠预定的时间后继续检测;
步骤5:远程调用服务器读取缓存文件中的调用结果,删除缓存文件。
本发明的有益效果是:利用缓存的方式提高大数据量数据远程调用的执行速度及工作效率。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤2中配置文件,用于记录调用结果所需存储空间的大小大于预定值的命令脚本文件。所述预设值为2K。
进一步,所述命令脚本文件中包括系统命令或脚本文件。
进一步,一种大数据量数据远程调用装置,包括远程调用客户端,远程调用服务器;
所述远程调用客户端,用于向远程调用服务器发送调用请求,请求调用远程调用服务器上的命令脚本文件;
所述远程调用服务器,用于接收调用请求,根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,将远程调用服务器上本地时间的缓存时间戳发送给远程调用客户端,将调用结果发送给远程调用客户端;否则,采用远程调用方式获得调用命令脚本生成的调用结果,获取远程调用服务器上本地时间的缓存时间戳,根据缓存时间戳生成缓存文件,将通过调用命令脚本文件生成的调用结果存储在缓存文件中,并检测命令脚本文件是否调用完毕,如果调用完毕,读取缓存文件中的调用结果,删除缓存文件,否则,休眠预定的时间后继续检测。
采用上述进一步方案的有益效果是利用缓存的方式提高大数据量数据远程调用的执行速度及工作效率。
进一步,所述远程调用服务器中的配置文件,用于记录调用结果所需存储空间的大小大于预定值的命令脚本文件。所述预设值为2K。
进一步,所述命令脚本文件中包括系统命令或脚本文件。
附图说明
图1为本发明方法步骤流程图;
图2为本发明装置结构图。
附图中,各标号所代表的部件列表如下:
1、远程调用客户端,2、远程调用服务器。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明方法步骤流程图;图2为本发明装置结构图。
实施例1
一种大数据量数据远程调用方法,包括以下步骤:
步骤1:远程调用客户端向远程调用服务器发送调用请求,请求调用远程调用服务器上的命令脚本文件;
步骤2:远程调用服务器根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,转入步骤3,否则,采用远程调用方式获得调用命令脚本生成的调用结果;
步骤3:远程调用服务器获取远程调用服务器上本地时间的缓存时间戳,根据缓存时间戳生成缓存文件;
步骤4:远程调用服务器将通过调用命令脚本文件生成的调用结果存储在缓存文件中,并检测命令脚本文件是否调用完毕,如果调用完毕,转入步骤5,否则,休眠预定的时间后继续检测;
步骤5:远程调用服务器读取缓存文件中的调用结果,删除缓存文件。
所述步骤2中配置文件,用于记录调用结果所需存储空间的大小大于预定值的命令脚本文件。所述预设值为2K。所述命令脚本文件中包括系统命令或脚本文件。
一种大数据量数据远程调用装置,包括远程调用客户端1,远程调用服务器2;
所述远程调用客户端1,用于向远程调用服务器发送调用请求,请求调用远程调用服务器上的命令脚本文件;
所述远程调用服务器2,用于接收调用请求,根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,将远程调用服务器上本地时间的缓存时间戳发送给远程调用客户端1,将调用结果发送给远程调用客户端1;否则,采用远程调用方式获得调用命令脚本生成的调用结果,获取远程调用服务器2上本地时间的缓存时间戳,根据缓存时间戳生成缓存文件,将通过调用命令脚本文件生成的调用结果存储在缓存文件中,并检测命令脚本文件是否调用完毕,如果调用完毕,读取缓存文件中的调用结果,删除缓存文件,否则,休眠预定的时间后继续检测。
所述远程调用服务器2中的配置文件,用于记录调用结果所需存储空间的大小大于预定值的命令脚本文件。所述预设值为2K。所述命令脚本文件中包括系统命令或脚本文件。
在使用rpc开发维护操作平台的产品时,rpc服务端在收到客户端发送的请求时,需要通过Runtime.getRuntime().exec()方法调用外部脚本或系统命令。当调用外部脚本返回的数据较大时,发现Runtime.getRuntime().exec()方法无法返回。于是改成缓存方式。
第一步,先在系统配置文件里配置上哪些系统命令需要走缓存方式。
配置项more,pg,cat是需要做缓存的系统命令。tt.tmp是缓存的临时文件。
第二步,根据时间戳建立缓存文件。String tmpFileName=DEFAULT_IO_FILENAME+System.currentTimeMillis();
第三步,将命令返回的数据存入临时缓存文件。cmd=cmdContent+">"+tmpFileName;
调用process=Runtime.getRuntime().exec(cmd)方法,调用系统命令。
第四步,当命令完毕后。读取缓存文件内容。
第五步,删除缓存文件。file.delete();
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种大数据量数据远程调用方法,其特征在于,包括以下步骤:
步骤1:远程调用客户端向远程调用服务器发送调用请求,请求调用远程调用服务器上的命令脚本文件;
步骤2:远程调用服务器根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,转入步骤3,否则,采用远程调用方式获得调用命令脚本生成的调用结果;
步骤3:远程调用服务器获取本地时间的缓存时间戳,根据缓存时间戳生成缓存文件;
步骤4:远程调用服务器将通过调用命令脚本文件生成的调用结果存储在缓存文件中,并检测命令脚本文件是否调用完毕,如果调用完毕,转入步骤5,否则,休眠预定的时间后继续检测;
步骤5:远程调用服务器读取缓存文件中的调用结果,删除缓存文件。
2.根据权利要求1所述的大数据量数据远程调用方法,其特征在于:所述步骤2中配置文件,用于记录调用结果所需存储空间的大小大于预定值的命令脚本文件。
3.根据权利要求2任一所述的大数据量数据远程调用方法,其特征在于:所述预设值为2K。
4.根据权利要求1至3任一所述的大数据量数据远程调用方法,其特征在于:所述命令脚本文件中包括系统命令或脚本文件。
5.一种大数据量数据远程调用装置,其特征在于:包括远程调用客户端(1),远程调用服务器(2);
所述远程调用客户端(1),用于向远程调用服务器(2)发送调用请求,请求调用远程调用服务器上的命令脚本文件;
所述远程调用服务器(2),用于接收调用请求,根据调用请求确定命令脚本文件,判断命令脚本文件是否在远程调用服务器中的配置文件中,如果是,将远程调用服务器上本地时间的缓存时间戳发送给远程调用客户端(1),将调用结果发送给远程调用客户端(1);否则,采用远程调用方式获得调用命令脚本生成的调用结果,获取远程调用服务器(2)上本地时间的缓存时间戳,根据缓存时间戳生成缓存文件,将通过调用命令脚本文件生成的调用结果存储在缓存文件中,并检测命令脚本文件是否调用完毕,如果调用完毕,读取缓存文件中的调用结果,删除缓存文件,否则,休眠预定的时间后继续检测。
6.根据权利要求5所述的大数据量数据远程调用装置,其特征在于:所述远程调用服务器(2)中的配置文件,用于记录调用结果所需存储空间的大小大于预定值的命令脚本文件。
7.根据权利要求6所述的大数据量数据远程调用装置,其特征在于:所述预设值为2K。
8.根据权利要求5至7任一所述的大数据量数据远程调用装置,其特征在于:所述命令脚本文件中包括系统命令或脚本文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310412634.3A CN103473116B (zh) | 2013-09-11 | 2013-09-11 | 一种大数据量数据远程调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310412634.3A CN103473116B (zh) | 2013-09-11 | 2013-09-11 | 一种大数据量数据远程调用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473116A true CN103473116A (zh) | 2013-12-25 |
CN103473116B CN103473116B (zh) | 2016-09-14 |
Family
ID=49797985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310412634.3A Active CN103473116B (zh) | 2013-09-11 | 2013-09-11 | 一种大数据量数据远程调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473116B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453250A (zh) * | 2016-09-05 | 2017-02-22 | 掌阅科技股份有限公司 | 一种大数据rpc的处理方法 |
CN109063022A (zh) * | 2018-07-12 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种服务器系统信息的提取方法 |
CN114157449A (zh) * | 2021-10-29 | 2022-03-08 | 国网信通亿力科技有限责任公司 | 一种大数据量下行指令调用方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4916605A (en) * | 1984-03-27 | 1990-04-10 | International Business Machines Corporation | Fast write operations |
US20040237092A1 (en) * | 2003-05-19 | 2004-11-25 | Sun Microsystems, Inc. | Inter-object communication interface bridge |
CN101217449A (zh) * | 2008-01-09 | 2008-07-09 | 金蝶软件(中国)有限公司 | 远程调用管理方法 |
CN101854371A (zh) * | 2009-03-31 | 2010-10-06 | 华为技术有限公司 | JavaScript对象的调用及处理的方法、装置 |
US7853962B1 (en) * | 2005-05-31 | 2010-12-14 | Cisco Technology, Inc. | Method and apparatus for optimization of remote procedure call communications |
CN102624881A (zh) * | 2012-02-29 | 2012-08-01 | 浙江大学 | 一种面向移动设备的服务缓存系统架构及开发方法 |
-
2013
- 2013-09-11 CN CN201310412634.3A patent/CN103473116B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4916605A (en) * | 1984-03-27 | 1990-04-10 | International Business Machines Corporation | Fast write operations |
US20040237092A1 (en) * | 2003-05-19 | 2004-11-25 | Sun Microsystems, Inc. | Inter-object communication interface bridge |
US7853962B1 (en) * | 2005-05-31 | 2010-12-14 | Cisco Technology, Inc. | Method and apparatus for optimization of remote procedure call communications |
CN101217449A (zh) * | 2008-01-09 | 2008-07-09 | 金蝶软件(中国)有限公司 | 远程调用管理方法 |
CN101854371A (zh) * | 2009-03-31 | 2010-10-06 | 华为技术有限公司 | JavaScript对象的调用及处理的方法、装置 |
CN102624881A (zh) * | 2012-02-29 | 2012-08-01 | 浙江大学 | 一种面向移动设备的服务缓存系统架构及开发方法 |
Non-Patent Citations (1)
Title |
---|
王博,陈莉君: "Hadoop远程过程调用机制的分析和应用", 《西安邮电学院学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453250A (zh) * | 2016-09-05 | 2017-02-22 | 掌阅科技股份有限公司 | 一种大数据rpc的处理方法 |
CN106453250B (zh) * | 2016-09-05 | 2019-07-09 | 掌阅科技股份有限公司 | 一种大数据rpc的处理方法 |
CN109063022A (zh) * | 2018-07-12 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种服务器系统信息的提取方法 |
CN114157449A (zh) * | 2021-10-29 | 2022-03-08 | 国网信通亿力科技有限责任公司 | 一种大数据量下行指令调用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103473116B (zh) | 2016-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11922100B2 (en) | System and method for energy usage accounting in software applications | |
US10083025B2 (en) | Dynamic update of an application in compilation and deployment with warm-swapping | |
US9575864B2 (en) | Function-level dynamic instrumentation | |
CN102279765A (zh) | 预编译托存托管代码 | |
US9552221B1 (en) | Monitoring application execution using probe and profiling modules to collect timing and dependency information | |
US20210173665A1 (en) | Bootstrapping Profile-Guided Compilation and Verification | |
CN104484216A (zh) | 服务接口文档和在线测试工具生成方法、装置 | |
WO2009100156A1 (en) | Automatic connections between application components | |
JP2007531147A (ja) | プログラムの実行システムおよび実行方法 | |
Van't Hof et al. | Flux: Multi-surface computing in Android | |
CN110737589A (zh) | 一种自动埋点的方法、装置、介质和电子设备 | |
WO2012079335A1 (zh) | 基于嵌入式实时java虚拟机的预先类加载方法及装置 | |
US10496423B2 (en) | Method for opening up data and functions of terminal application based on reconstruction technology | |
US7502967B1 (en) | Identifying an object in a data file that causes an error in an application | |
US9207946B2 (en) | Auto-cloudifying applications via runtime modifications | |
EP2972881A1 (en) | Diagnostics of state transitions | |
CN103473116A (zh) | 一种大数据量数据远程调用方法及装置 | |
Weng et al. | Kmon: An in-kernel transparent monitoring system for microservice systems with ebpf | |
US20080244324A1 (en) | Method and system for providing enhanced exception messages for exceptions thrown by virtual machines | |
US20090327995A1 (en) | Annotation-aided code generation in library-based replay | |
CN101963924A (zh) | 一种进程通信方法、装置及操作系统 | |
KR20180098584A (ko) | App 프로그램 실행 방법 및 장치 | |
CN104778087B (zh) | 一种信息处理方法以及信息处理装置 | |
KR101394225B1 (ko) | 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법 | |
CN110737588A (zh) | 一种自动埋点的方法、装置、介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |