CN110874298B - 一种请求数据存储方法及终端设备 - Google Patents
一种请求数据存储方法及终端设备 Download PDFInfo
- Publication number
- CN110874298B CN110874298B CN201911107693.3A CN201911107693A CN110874298B CN 110874298 B CN110874298 B CN 110874298B CN 201911107693 A CN201911107693 A CN 201911107693A CN 110874298 B CN110874298 B CN 110874298B
- Authority
- CN
- China
- Prior art keywords
- request
- request information
- data
- server
- current
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013500 data storage Methods 0.000 title claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 40
- 238000012360 testing method Methods 0.000 claims description 23
- 230000002159 abnormal effect Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 9
- 238000011835 investigation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 230000007723 transport mechanism Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种请求数据存储方法,在终端设备中执行,包括步骤:向服务端发送数据请求,并接收服务端返回的响应数据;判断当前内存缓存开关是否开启,若开启,则将本次数据请求的请求信息缓存至内存;若本次数据请求的响应时间大于第一阈值或请求失败,则将本次数据请求的请求信息存储至本地磁盘。本发明一并公开了相应的终端设备。
Description
技术领域
本发明涉及应用开发及测试技术领域,尤其涉及一种请求数据存储方法及终端设备。
背景技术
数据请求是客户端应用(App)的基本功能。当用户在终端设备(例如手机、平板电脑、智能可穿戴设备等)上访问应用页面时,该应用向服务端发起数据请求,并根据服务端返回的数据来对页面进行渲染。
在应用的开发、测试过程中,以及应用上线发布之后,开发者、用户很可能遇到页面渲染速度慢、数据请求失败无法渲染、页面数据错误等问题。因此,有必要对出现问题的数据请求进行记录,以复现问题场景,实现问题的快速排查和解决。
发明内容
为此,本发明提供一种请求数据存储方法及终端设备,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种请求数据存储方法,在终端设备中执行,包括步骤:向服务端发送数据请求,并接收服务端返回的响应数据;判断当前内存缓存开关是否开启,若开启,则将本次数据请求的请求信息缓存至内存;若本次数据请求的响应时间大于第一阈值或请求失败,则将本次数据请求的请求信息存储至本地磁盘。
可选地,在根据本发明的请求数据存储方法中,请求信息包括所述数据请求的用户标识、请求路径、请求参数、请求时间、响应时间、是否成功标识、响应数据、终端设备环境、网络环境中的至少一种。
可选地,在根据本发明的请求数据存储方法中,在所述将本次数据请求的请求信息存储至磁盘中的步骤之后,还包括步骤:在所述终端设备处于线上环境时,将所述请求信息上传至服务端,以及删除所述本地磁盘中的相应请求信息。
可选地,在根据本发明的请求数据存储方法中,在所述将本次数据请求的请求信息缓存至内存中的步骤之后,还包括步骤:判断当前内存中缓存的请求信息的数量是否大于第二阈值;若是,则将当前内存中缓存的请求时间最早的请求信息删除。
可选地,在根据本发明的请求数据存储方法中,还包括步骤:判断当前终端设备是否连接至互联网,若否,则不执行所述将本次数据请求的请求信息存储至本地磁盘中的步骤。
可选地,在根据本发明的请求数据存储方法中,还包括步骤:判断当前本地磁盘中是否存在过期信息,所述过期信息为当前时间与请求时间之差大于第三阈值的请求信息;若是,则删除所述过期信息。
可选地,在根据本发明的请求数据存储方法中,还包括步骤:判断当前本地磁盘中是否存在未上传至服务端的请求信息;若存在未上传至服务端的请求信息,则判断当前终端设备是否处于线上环境;若处于线上环境,则将所述未上传至服务端的请求信息上传至服务端。
可选地,在根据本发明的请求数据存储方法中,内存缓存开关在终端设备处于测试环境时开启,在终端设备处于线上环境时关闭。
根据本发明的第二个方面,提供一种终端设备,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述终端设备执行如上所述的请求数据存储方法。
根据本发明的第三个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被终端设备读取并执行时,使得所述终端设备执行如上所述的请求数据存储方法。
本发明的请求数据存储方案将内存缓存和磁盘缓存相结合。通过将数据请求的请求信息缓存至内存中,可以实现的请求信息的高效查询,便于在应用的开发、测试阶段进行实时的问题排查和解决。通过将异常的(响应时间大于第一阈值或请求失败的)数据请求的请求信息存储至磁盘中,可以延长请求信息的存储期限,便于在后续任意时段查询请求信息以进行问题排查。本地磁盘中仅存储异常数据请求的请求信息,相较于存储全部数据请求的请求信息,大大节省了终端设备的存储空间。
进一步地,当终端设备处于线上环境(即用户使用环境)时,进一步将异常数据请求的请求信息上传至服务端。这样,开发、运维人员可以通过查询服务端数据库中存储的异常请求信息,快速定位问题并及时给予用户正反馈,提高解决问题的效率和用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的请求数据存储系统100的示意图;
图2示出了根据本发明一个实施例的终端设备200的示意图;
图3示出了根据本发明一个实施例的请求数据存储方法300的流程图;
图4示出了根据本发明一个实施例的请求数据存储过程的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的请求数据存储系统100的示意图。如图1所示,请求数据存储系统100包括终端设备200、服务端设备110和数据存储装置120。应当指出,图1所示的请求数据存储系统100仅是示例性的,虽然其中仅示出了一个终端设备、一个服务端设备和一个数据存储装置,但是,在具体的实践情况中,请求数据存储系统中可以包括不同数量的终端设备、服务端设备和数据存储装置,本发明对请求数据存储系统中所包括的终端设备、服务端设备和数据存储装置的数量不做限制。
终端设备200是能够与用户进行交互的设备,其例如可以是手机、平板电脑、多媒体播放器、智能可穿戴设备等移动终端,也可以是桌面计算机、笔记本计算机等个人配置的计算机,还可以是智能电视、智能门禁、智能音箱、工控设备等物联网(Internet ofThings,IoT)设备,但不限于此。
终端设备200中通常安装有多个应用,例如资讯类应用、购物应用、即时通信应用等,但不限于此。服务端设备110是终端设备200中安装的某一个应用的服务端,用于向该应用提供方法及数据调用。
服务端设备110与数据存储装置120连接,服务端设备110可以向数据存储装置120中写入数据,以及基于数据存储装置120中存储的数据来向终端设备200提供服务。数据存储装置120可以是关系型数据库例如MySQL、ACCESS等,也可以是非关系型数据库例如NoSQL等;可以是驻留于服务端设备110中的本地数据库,也可以作为分布式数据库例如MongoDB、Sybase、HBase等设置于多个地理位置处,总之,数据存储装置120用于存储数据,本发明对数据存储装置120的具体部署、配置情况不做限制。
在本发明的实施例中,终端设备200中部署有目标应用,目标应用例如可以是汽车资讯应用。服务端设备110是目标应用对应的服务端,用于向目标应用提供方法及数据调用。
终端设备200根据目标应用的用户群体、应用阶段的不同,被划分为多种环境。例如,在应用的开发、测试、预发布阶段,目标应用的用户群体为该应用的研发人员,这种情况下,将终端设备200所处的环境记为测试环境;目标应用开发、测试完成后,将被发布至应用平台,供用户下载使用,即目标应用的用户群体为普通用户(消费者),这种情况下,将终端设备200所处的环境记为线上环境。
终端设备200的环境可以通过在目标应用中设置环境常量来区分。例如,在测试阶段,研发人员可以将环境常量设置为0,表示当前处于测试环境;在测试完成后,研发人员可以将环境常量设置为1,并将目标应用发布至应用平台,用户下载安装的目标应用中环境常量为1,表明当前处于线上环境。需要说明的是,尽管在上述实施例中,测试环境的环境常量为0,线上环境的环境常量为1,但本领域技术人员可以理解,环境常量的取值不限于此,任意能够区分测试环境和线上环境的环境常量的设置方式均在本发明的保护范围之内。
在本发明的实施例中,当用户在终端设备200上使用目标应用时,目标应用可以向服务端110发起数据请求,并根据服务端110返回的数据来对应用页面进行渲染。为了便于追溯页面渲染速度慢、数据请求失败无法渲染、页面数据错误等问题,本发明的系统100可以对终端设备200的请求数据进行存储,以复现问题场景,实现问题的快速排查和解决。
具体地,终端设备200可以执行本发明的请求数据存储方法300,来存储数据请求相关的请求信息。
当终端设备200处于测试环境时,在终端设备200本地采用内存缓存和磁盘缓存相结合的方式来存储请求数据。通过将数据请求的请求信息缓存至内存中,可以实现的请求信息的高效查询,便于在应用测试阶段进行实时的问题排查和解决。通过将异常的(响应时间大于第一阈值或请求失败的)数据请求的请求信息存储至磁盘中,可以延长请求信息的存储期限,便于在后续任意时段查询请求信息以进行问题排查。本地磁盘中仅存储异常数据请求的请求信息,相较于存储全部数据请求的请求信息,大大节省了终端设备的存储空间。
当终端设备200处于线上环境时,不再采用内存缓存方式,而是采用本地磁盘缓存和远程服务端存储的方式来存储请求数据。通过将异常的(响应时间大于第一阈值或请求失败的)数据请求的请求信息缓存至终端设备200的本地磁盘中,并且上传至服务端110,服务端110将请求信息存储至数据存储装置120,可以使开发、运维人员通过查询服务端数据存储装置120中存储的请求信息,快速定位问题并及时给予用户正反馈,提高解决问题的效率和用户体验。
图2示出了根据本发明一个实施例的终端设备200的示意图。需要说明的是,图2所示的终端设备200仅为一个示例,在实践中,用于实施本发明的请求数据存储方法的终端设备可以是任意型号的设备,其硬件配置情况可以与图2所示的终端设备200相同,也可以与图2所示的终端设备200不同。实践中用于实施本发明的请求数据存储方法的终端设备可以对图2所示的终端设备200的硬件组件进行增加或删减,本发明对终端设备的具体硬件配置情况不做限制。
如图2所示,在基本的配置202中,终端设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。终端设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器204读取。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上由一个或多个处理器204利用程序数据224执行指令。操作系统220例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用222包括用于实现各种用户期望的功能的程序指令,应用222例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用222被安装到终端设备200中时,可以向操作系统220添加驱动模块。
在终端设备200启动运行时,处理器204会从存储器206中读取操作系统220的程序指令并执行。应用222运行在操作系统220之上,利用操作系统220以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用222时,应用222会加载至存储器206中,处理器204从存储器206中读取并执行应用222的程序指令。
终端设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备142包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他终端设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的终端设备200中,应用222包括用于执行本发明的请求数据存储方法300的指令,该指令可以指示处理器104执行本发明的请求数据存储方法300,以实现请求数据的高效存储。
图3示出了根据本发明一个实施例的请求数据存储方法300的流程图。方法300在终端设备(例如前述终端设备200)中执行,用于高效地存储请求数据。如图3所示,方法300始于步骤S310。
在步骤S310中,向服务端发送数据请求,并接收服务端返回的响应数据。
当用户进入目标应用的某一页面时,终端设备200向服务端110发起数据请求。服务端110接收到终端设备200发来的数据请求后,对该请求进行响应,将响应数据返回给终端设备200。终端设备200基于服务端110返回的响应数据来渲染页面,将页面呈现给用户。
例如,用户进入目标应用的某一页面时,向服务端发起数据请求,数据请求的参数(params)如下:
服务端基于该数据请求,向终端设备返回以下响应数据:
{"message":"操作成功","result":{"amount":"41.05","avatar":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_avatar_men.png","balance":"0.00","familyCard":2,"familyCardName":"我是新手","modelList":[{"code":"1006","jumpUrl":"autohome://travel/browsehistory","name":"历史","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_browser_history_905.png"},{"code":"1005","jumpUrl":"autohome://travel/mycollect","name":"收藏","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_my_collect_icon.png"},{"code":"1000","jumpUrl":"autohome://travel/mypublish?tabCode=1000","name":"发布","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_fund_travelRecord.png"},{"code":"114","jumpUrl":"autohome://insidebrowserwk?url=https://you.m.autohome.com.cn/market/orderlist","name":"订单","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_order.png"}],"ratio":"1:1","uId":"37371244","url":"https://pay.autohome.com.cn/ucenter/login/ahsso.htm?return_url=https://pay.autohome.com.cn/m/personalwallet/balance","userName":"北小洛"},"returncode":0}
需要说明的是,步骤S310中“接收服务端返回的响应数据”的步骤指的是,如果服务端正常返回了响应数据,则终端设备可以接收该响应数据,而不是指任何情况下终端设备必然可以接收到服务端返回的响应数据。本领域技术人员可以理解,在某些情况下,例如终端设备网络异常、服务端接口异常等情况下,服务端可能无法接收到终端设备发来的数据请求并进行响应,或者服务端正常响应,终端设备也可能由于网络异常而无法接收到响应数据。
随后,在步骤S320中,判断当前内存缓存开关是否开启,若开启,则将本次数据请求的请求信息缓存至内存。
根据一种实施例,内存缓存功能可以实现为目标应用中的一个可选择的功能组件,通过设置内存缓存开关的值,可以在目标应用中引入或删除该组件,从而使目标应用具有或不具有内存缓存功能。例如,当内存缓存开关开启时(例如将内存缓存开关的值设置为1时),内存缓存组件被引入,目标应用具有内存缓存功能;当内存缓存开关关闭时(例如将内存缓存开关的值设置为0时),内存缓存组件被删除,相应地,目标应用不具有内存缓存功能。
根据一种实施例,在终端设备处于测试环境时,研发人员可以将内存缓存开关设置为开启,从而向目标应用中引入内存缓存组件,使目标应用具有内存缓存功能,从而将数据请求的请求信息缓存至内存,以便研发人员可以从内存中高效地查询请求信息,实现问题的实时排查和解决。由于普通用户通常不需要对请求信息进行实时追溯、排查,并且将请求信息缓存至内存中会占用终端设备有限的内存空间,可能会影响终端设备运行的流畅性,因此,在目标应用完成测试后,研发人员通常将内存缓存开关关闭,然后再将目标应用发布至应用平台,使用户下载安装的目标应用中不具有内存缓存功能,不在内存中缓存请求信息。即,当终端设备处于线上环境时,内存缓存关闭,终端设备不在内存中缓存数据请求的请求信息。
根据一种实施例,数据请求的请求信息包括:数据请求的用户标识、请求路径、请求参数、请求时间、响应时间、是否成功标识、响应数据、终端设备环境、网络环境中的至少一种。各项请求信息的含义如下:
用户标识(userid)为当前登录目标应用的用户的标识,若当前用户未登录,则用户标识为空;
请求路径(url)为数据请求的URL地址;
请求参数(params)为数据请求(HTTP请求)的参数字典所对应的JSON字符串;
请求时间(requestTime)为数据请求的发送时间;
响应时间(requestExpendTime)为从终端设备发送数据请求到终端设备接收到服务端返回的响应数据所经过的时间,单位通常为毫秒(ms);
是否成功标识(isSuccess)用于表示本次数据请求是否成功,即是否成功接收到服务端返回的响应数据,例如可以用1表示成功,0表示失败;
响应数据(responseData)为服务端返回的数据,若接口请求失败,则响应数据为空;
终端设备环境(environment)指的是当前终端设备所处的环境,包括测试环境、线上环境等,例如可以用0表示测试环境,1表示线上环境;
网络环境(netEnvironment)指的是终端设备所处的网络环境,例如3G、4G、WiFi环境等。
例如,以前述步骤S310中的数据请求、响应数据为例,其所对应的请求信息如下:
userid:10,
url:https:y.autohome.com.cn/api_app/api/user/trave/fund,
params:{"version":"10.2.2","authorization":"de931cf8971245ea8ca76c5b2a4b4add023a3d6c"},
requestExpendTime:0.11,
requestTime:2019-09-25 15:28:00,
isSuccess:1,
responseData:{"message":"操作成功","result":{"amount":"41.05","avatar":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_avatar_men.png","balance":"0.00","familyCard":2,"familyCardName":"我是新手","modelList":[{"code":"1006","jumpUrl":"autohome://travel/browsehistory","name":"历史","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_browser_history_905.png"},{"code":"1005","jumpUrl":"autohome://travel/mycollect","name":"收藏","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_my_collect_icon.png"},{"code":"1000","jumpUrl":"autohome://travel/mypublish?tabCode=1000","name":"发布","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_fund_travelRecord.png"},{"code":"114","jumpUrl":"autohome://insidebrowserwk?url=https://you.m.autohome.com.cn/market/orderlist","name":"订单","picUrl":"https://you2.autoimg.cn/_autohomecar__zhouyouji/travel_order.png"}],"ratio":"1:1","uId":"37371244","url":"https://pay.autohome.com.cn/ucenter/login/ahsso.htm?return_url=https://pay.autohome.com.cn/m/personalwallet/balance","userName":"北小洛"},"returncode":0},
environment:1,
netEnvironment:WiFi
根据一种实施例,为了避免请求信息占用过多的内存空间,在步骤S320后,还包括以下步骤:判断当前内存中缓存的请求信息的数量是否大于第二阈值;若是,则将当前内存中缓存的请求时间最早的请求信息删除。
第二阈值的具体取值可以由本领域技术人员自行设置,本发明对此不做限制。例如,可以在移动终端本地设置maxRequestCount常量来表示第二阈值,并将其值设为50,即,将第二阈值设置为50。并且,设置currentRequestCount属性来表示内存中当前存储的请求信息的数量,每当步骤S320向内存中存储一条请求信息,将currentRequestCount属性的值加一。当currentRequestCount的值大于50时,表明内存中存储的请求信息的数量超过了内存允许存储的请求信息的最大数量,即超过了第二阈值。这时,将当前内存中缓存的请求时间最早的请求信息删除,以使内存中缓存的请求信息的数量保持在允许存储的最大数量之内。
在将请求信息缓存至内存中后,执行步骤S330。若步骤S320中,内存缓存开关关闭,则无需将请求信息缓存至内存中,而直接执行步骤S330。
在步骤S330中,若本次数据请求的响应时间大于第一阈值或请求失败,则将本次数据请求的请求信息存储至本地磁盘。
数据请求的响应时间大于第一阈值,表明获取到响应数据的时间较长,导致页面渲染速度较慢。需要说明的是,第一阈值可以由本领域技术人员自行设置,本发明对此不做限制。例如,可以将第一阈值设置为0.2毫秒。考虑到在测试环境中终端设备的网络情况、服务端接口情况通常比较稳定,而在线上环境中终端设备的网络情况、服务端接口情况等复杂多变、波动较大,因此,在一些实施例中,可以将测试环境和线上环境的第一阈值设置为不同的值,测试环境的第一阈值可以设置的比线上环境的小一些。
请求失败指的是终端设备因网络请求失败或网络请求超时等原因,未接收到服务端返回的响应数据。网络请求超时指的是一段较长的时间(例如15秒)内服务端接口无响应。
在步骤S330中,将异常的(响应时间大于第一阈值或请求失败的)数据请求的请求信息存储至磁盘中,可以延长请求信息的存储期限,便于在后续任意时段查询请求信息以进行问题排查。并且,本地磁盘中仅存储异常数据请求的请求信息,相较于存储全部数据请求的请求信息,大大节省了终端设备的存储空间。
根据一种实施例,在步骤S330中,进一步判断当前终端设备是否连接至互联网,若否,则不执行将本次数据请求的请求信息存储至本地磁盘中的步骤。如果终端设备在发送数据请求的过程中本身就处在无网络的环境,则不对请求信息进行磁盘缓存,从而进一步降低了终端设备磁盘缓存的压力,节省了磁盘空间。并且,这样的请求信息本身对于追溯、排查、解决问题来说没有意义,属于垃圾数据。
根据一种实施例,在步骤S330之后,还包括步骤S340(步骤S340未在图3中示出)。在步骤S340中,若终端设备处于线上环境,则进一步将本地磁盘中存储的请求信息上传至服务端,以便服务端将该请求信息存储至数据库(数据存储装置)中,并在上传成功后删除本地磁盘中的相应请求信息。例如,终端设备创建用于上传数据的后台线程池,线程池所包括的线程的数量可以根据终端设备的CPU核数来确定,例如,可是CPU核数加一。采用多线程同步上传相应的请求数据,并在上传成功后将本地磁盘中的相应数据删除。
将线上环境下的异常数据请求的请求信息上传至服务端,使得开发、运维人员可以通过服务端提供的数据查询接口来查询数据库中存储的异常请求信息,快速定位问题并及时给予用户正反馈,提高解决问题的效率和用户体验。并且,只有在终端设备处于线上环境时,才将出现异常的请求信息上传至服务端,当终端设备处于测试环境时则不上传,从而减小了服务端的数据存储量,降低了服务端的存储压力。
根据一种实施例,方法300还包括步骤S350(步骤S350未在图3中示出)。在步骤S350中,判断当前本地磁盘中是否存在过期信息,过期信息为当前时间与请求时间之差大于第三阈值的请求信息;若是,则删除过期信息。例如,可以将当前时间与分别与本地磁盘中存储的各条请求信息的请求时间(requestTime)作比较,若二者之差大于第三阈值,则表明该条请求信息为过期信息。需要说明的是,第三阈值的值可以由本领域技术人员自行设置,本发明对此不做限制。
步骤S350是考虑到,如果本地磁盘中存储的异常的请求信息长时间未上传,则其在问题的追溯、排查、以及解决方面的意义已经大大降低,因此,可以删除本地磁盘中的过期信息,也无需将这些过期信息上传至服务端,从而节省本地磁盘以及服务端数据库的存储空间。
此外,服务端也可以设置与步骤S350类似的逻辑,将数据存储装置中存储的过期信息删除,从而清除距离当前时间较久的、对于问题的追溯和解决无意义的异常请求信息,节省存储空间。
根据一种实施例,方法300还包括步骤S360(步骤S360未在图3中示出)。在步骤S360中,判断当前本地磁盘中是否存在未上传至服务端的请求信息;若存在未上传至服务端的请求信息,则判断当前终端设备是否处于线上环境;若处于线上环境,则将未上传至服务端的请求信息上传至服务端。步骤S360是考虑到终端设备可能由于网络波动等原因,使得本地磁盘中的某些请求信息未成功上传至服务端,因此,在步骤S360中,将本地磁盘中的这些未成功上传至服务端的请求信息再次上传至服务端。
图4示出了根据本发明一个实施例的请求数据存储过程的示意图。如图4所示,当用户在终端设备上启动应用,进入应用中的某一页面后,终端设备并行地执行以下两组步骤:
在第一组步骤中,终端设备向服务端发起数据请求,并接收服务端返回的响应数据。若内存缓存开关开启,则将本次数据请求的请求信息缓存至内存,接下来判断本次数据请求的响应时间是否大于第一阈值或请求失败;内存缓存开关关闭,则无需将本次数据请求的请求信息缓存之内存,直接判断本次数据请求的响应时间是否大于第一阈值或请求失败。
若本次数据请求的响应时间大于第一阈值或请求失败,则表明本次数据请求异常,将本次的请求信息存储至终端设备的本地磁盘;若本次数据请求成功且响应时间小于等于第一阈值,则表明本次数据请求正常,无需将请求信息存储至本地磁盘。
在将请求信息存储至本地磁盘后,判断当前终端设备是否处于线上环境。若终端设备处于线上环境,则进一步将本地磁盘中存储的本次请求信息上传至服务端进行存储,并在上传成功后,删除本地磁盘中的相应请求信息。
在第二组步骤中,终端设备开启后台线程,判断本地磁盘中是否存在过期信息。若是,则删除过期信息;若否,则进一步判断本地磁盘中是否存在未上传至服务端的请求信息。
若存在未上传至服务端的请求信息,则获取该未上传的请求信息,并判断终端设备当前是否处于线上环境。若不存在未上传至服务端的请求信息,则无需执行后续步骤。
若终端设备当前处于线上环境,则将本地磁盘中的未上传的请求信息上传至服务端,并在上传成功后,删除本地磁盘中的相应请求信息;若终端设备当前不处于线上环境,则无需将请求信息上传至服务端。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,终端设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的请求数据存储方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。
Claims (8)
1.一种请求数据存储方法,在终端设备中执行,在所述终端设备中部署有目标应用,所述方法包括步骤:
所述目标应用向服务端发送数据请求,并接收服务端返回的响应数据;
判断当前内存缓存开关是否开启,若开启,则将本次数据请求的请求信息缓存至内存,其中,所述内存缓存开关在终端设备处于测试环境时开启,在终端设备处于线上环境时关闭;
若本次数据请求的响应时间大于第一阈值或请求失败,则将本次数据请求的请求信息存储至本地磁盘;
当所述终端处于线上环境时,将所述请求信息上传至服务端,以及删除所述本地磁盘中的相应请求信息。
2.如权利要求1所述的方法,其中,所述请求信息包括所述数据请求的用户标识、请求路径、请求参数、请求时间、响应时间、是否成功标识、响应数据、终端设备环境、网络环境中的至少一种。
3.如权利要求1所述的方法,在所述将本次数据请求的请求信息缓存至内存中的步骤之后,还包括步骤:
判断当前内存中缓存的请求信息的数量是否大于第二阈值;
若是,则将当前内存中缓存的请求时间最早的请求信息删除。
4.如权利要求1-3中任一项所述的方法,还包括步骤:
判断当前终端设备是否连接至互联网,若否,则不执行所述将本次数据请求的请求信息存储至本地磁盘中的步骤。
5.如权利要求1所述的方法,还包括步骤:
判断当前本地磁盘中是否存在过期信息,所述过期信息为当前时间与请求时间之差大于第三阈值的请求信息;
若是,则删除所述过期信息。
6.如权利要求1-3中任一项所述的方法,还包括步骤:
判断当前本地磁盘中是否存在未上传至服务端的请求信息;
若存在未上传至服务端的请求信息,则判断当前终端设备是否处于线上环境;
若处于线上环境,则将所述未上传至服务端的请求信息上传至服务端。
7.一种终端设备,包括:
至少一个处理器和存储有程序指令的存储器;
当所述程序指令被所述处理器读取并执行时,使得所述终端设备执行如权利要求1-6中任一项所述的请求数据存储方法。
8.一种存储有程序指令的可读存储介质,当所述程序指令被终端设备读取并执行时,使得所述终端设备执行如权利要求1-6中任一项所述的请求数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911107693.3A CN110874298B (zh) | 2019-11-13 | 2019-11-13 | 一种请求数据存储方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911107693.3A CN110874298B (zh) | 2019-11-13 | 2019-11-13 | 一种请求数据存储方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874298A CN110874298A (zh) | 2020-03-10 |
CN110874298B true CN110874298B (zh) | 2023-05-30 |
Family
ID=69717996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911107693.3A Active CN110874298B (zh) | 2019-11-13 | 2019-11-13 | 一种请求数据存储方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874298B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526181B (zh) * | 2020-04-01 | 2022-11-11 | 北京皮尔布莱尼软件有限公司 | 数据请求的处理方法、系统及计算设备 |
CN113835912B (zh) * | 2020-06-24 | 2024-02-09 | 北京新氧科技有限公司 | 应用程序的崩溃信息处理方法及设备 |
CN112632092A (zh) * | 2020-12-18 | 2021-04-09 | 北京浪潮数据技术有限公司 | 一种集群管理方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408855B (zh) * | 2008-11-07 | 2010-06-02 | 北京威视数据系统有限公司 | 连续数据保护系统在远程备份设备临时异常时的保护方法 |
CN101692249B (zh) * | 2009-09-18 | 2012-11-14 | 深圳市科陆电子科技股份有限公司 | 对电力需求侧系统进行数据存取的方法 |
US10169948B2 (en) * | 2014-01-31 | 2019-01-01 | International Business Machines Corporation | Prioritizing storage operation requests utilizing data attributes |
CN104991739B (zh) * | 2015-06-19 | 2018-05-01 | 中国科学院计算技术研究所 | 元数据服务器失效接替中精确一次执行语义的方法及系统 |
-
2019
- 2019-11-13 CN CN201911107693.3A patent/CN110874298B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110874298A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874298B (zh) | 一种请求数据存储方法及终端设备 | |
US9734497B2 (en) | Method, terminal, server, device, and system of verification control | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN111666497B (zh) | 应用程序的加载方法、装置、电子设备及可读存储介质 | |
CN105138376A (zh) | 混合模式应用、其网页资源升级方法、移动终端以及系统 | |
CN111651464B (zh) | 数据处理方法、系统及计算设备 | |
US20160234340A1 (en) | Systems and methods for adaptive cloning of mobile devices | |
WO2020048189A1 (zh) | 图片生成 | |
US10509641B2 (en) | Optimizing feature deployment based on usage pattern | |
CN109670126B (zh) | 一种跨境访问加速方法及装置 | |
US10365798B1 (en) | Feedback manager for integration with an application | |
CN113377289A (zh) | 一种缓存管理方法、系统、计算设备及可读存储介质 | |
CN112153465B (zh) | 图像加载方法及装置 | |
KR102533726B1 (ko) | 전자 장치 및 그의 제어방법 | |
US11297156B1 (en) | System for processing data using distributed messaging system and data processing method thereof | |
CN111414383B (zh) | 数据请求方法、数据处理系统及计算设备 | |
CN111949275A (zh) | 一种脚本部署方法、请求处理方法及装置 | |
JP5643449B1 (ja) | 端末装置に表示画面を表示させるサーバ及び方法 | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
US20220164707A1 (en) | Electronic apparatus and controlling method thereof | |
CN110442380B (zh) | 一种数据预热方法及计算设备 | |
CN110858238A (zh) | 一种数据处理的方法和装置 | |
CN109840156B (zh) | 一种数据缓存方法及其设备、存储介质、终端 | |
CN108073559B (zh) | 一种实现表格数据更新的方法、装置及系统 | |
CN108733401B (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 |