CN102810073B - 数据后台实时监控处理方法 - Google Patents
数据后台实时监控处理方法 Download PDFInfo
- Publication number
- CN102810073B CN102810073B CN201210194323.XA CN201210194323A CN102810073B CN 102810073 B CN102810073 B CN 102810073B CN 201210194323 A CN201210194323 A CN 201210194323A CN 102810073 B CN102810073 B CN 102810073B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- monitoring
- file
- information
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种数据后台实时监控处理方法,该方法包括以下步骤:步骤一,当在原始的数据目录中有新的数据文件生成,启动文件系统变化的监测机制进行文件监控及对数据进行处理,并记录日志;步骤二、进行数据处理工作流执行及监控;步骤三、为进程定交叉保护;步骤四、进行日志记录;步骤五、系统崩溃时任务执行的恢复。与现有技术相比,本发明提供可以自动监控指定目录数据文件的到来,并执行相应的处理流程;在后台对该处理提供了较为完善的保障机制和容错恢复机制;在服务器上使用本方法对某指定目录进行监控,都能很好地完成到达数据的自动处理。对于人为制造的一些异常,包括系统重启、系统内存耗尽、处理流程意外退出等行为,也能很好地应对。
Description
技术领域
本发明涉及计算机数据处理和监控技术,特别是涉及在无人监控的条件下高可靠性的数据后台实时处理和监控的方法。
背景技术
计算机技术中,实时数据处理方法需要能够监控到数据的到达从而调用相关的处理流程去处理这些数据。通过周期性检查数据生成目录显然达不到这一目标。
在当前Linux操作系统中主要有两种检测文件系统数据变化的机制:inotify和FAM。inotify是Linux 2.6.13之后的内核提供的一种机制,用以替代之前的dnotify。FAM是一种更古老的机制,但它支持类Unix系统,因此具有更好的可移植性,同时FAM还支持监控NFS。通常所用的FAM称为Gamin,它与FAM兼容,但没有实现FAM的全部接口。因为inotify内核原生支持,性能更好,而FAM支持检测NFS文件系统的数据变化。
目前并没有一个具有高可靠性的实时数据的后台处理方法,在程序运行出现各种问题时或者系统崩溃时,很难迅速恢复到异常前的状态。
发明内容
基于上述现有技术存在的问题,本发明提出了一种并行天文交叉证认方法,利
一种能够自动触发处理流程、在系统不同层面提供相应的保障机制及较为完善的日志记录的数据实时处理和监控的方法。
本发明提供一种数据后台实时监控处理方法,以集群系统环境作为执行环境,该方法包括以下步骤:
步骤一,当在原始的数据目录中有新的数据文件生成,启动文件系统变化的监测机制进行文件监控及对数据进行处理,并记录日志;
步骤二,进行数据处理流程执行及监控,采用DAG图表示一个数据处理流程中的所有任务,其中顶点来表示一个任务,顶点间的指向方式表示任务之间的依赖关系;当流程执行时,采用类似拓扑排序的方式来执行所有任务;每次从任务队列中选择一个状态为Ready的任务,当这个任务正确执行完毕后,将依赖于这个任务的后续任务的入度减一;在任务执行时记录其PID信息,并在其运行后周期性的检查任务的运行状态,针对不同的运行状态采用以下反馈机制:一旦某任务出现问题,则重启该任务;当任务的失败次数超过某个阈值时,则会丢弃该任务,并记录日志;若某个任务的执行时间超出了系统的容忍极限,则会认为其发生了未知的错误,该任务会被强制结束,并尝试重新执行该任务;
步骤三,为进程设定交叉保护流程,该交叉保护流程初始时启动两个进程,一个是系统守护进程,用于执行文件监控及触发、工作流执行和监控、日志记录、崩溃恢复,另一个是系统保护进程,直接调用系统Cront进程进行系统保护;两进程会进行周期性的握手通信,一旦有一方未反馈响应并超过一定次数限制,则发送信息一方认为接收信息一方出现了异常,需要结束并重启接收信息一方;同时,Cront服务周期接收来自发送信息/接收信息这两方的心跳信息,若未收到其中任何一方的心跳信息,则重启该交叉保护流程;
步骤四,进行日志记录;
步骤五,系统崩溃时的恢复,当系统从一个状态被恢复后,它首先检查崩溃日志中记录的任务执行断点信息,即最后一个处理完毕的文件的时间戳,根据该信息恢复任务的执行。
与现有技术相比,本发明提供可以自动监控指定目录数据文件的到来,并执行相应的处理流程;在后台对该处理提供了较为完善的保障机制和容错恢复机制;通过在服务器上使用本方法来对某指定目录进行监控,都能很好地完成到达数据的自动处理。对于人为制造的一些异常,包括系统重启、系统内存耗尽、处理流程意外退出等行为,该方法也能很好地应对。
附图说明
图1为守护进程的流程图;
图2为交叉保护过程示意图。
具体实施方式
以下结合附图及较佳实施例,对依据本发明提供的具体实施方式、结构、特征及其功效,详细说明如下。
在计算机开机时启动后台守护进程和保护进程,两进程实现交叉保护机制,任何一方崩溃另一方都会去重启它;系统的Cront进程也会周期性地监控两进程的状态;守护进程监控数据目录文件的访问请求到来,调用相关的数据处理流程去处理数据,并记录相应的处理日志;当处理流程失败后,能够自行重启该流程,当超过一定的失败次数后,该处理任务会被丢弃;当系统崩溃后能从日志文件中恢复到崩溃前的状态。本发明的具体技术方案详述如下:
1)文件监控及任务触发
本方法实现了inotify和FAM两种文件系统变化的监测机制,使用时需要选择一种监测机制来对文件目录进行监控,如果在原始的数据目录中有新的数据文件生成,本发明就能够通过inotify或者FAM这两种机制得知,随即通过system函数调用相应的处理流程对数据进行处理,并记录相应的日志。
2)工作流执行及监控
在本方法中通过采用DAG图,即有向无环图的方式来表示一个数据处理流程中的所有任务。在图中采用顶点来表示一个任务,用顶点间的指向方式来表示任务之间的依赖关系。当流程执行时,采用类似拓扑排序的方式来执行所有任务:每次从任务队列中选择一个状态为Ready的任务,当这个任务正确执行完毕后,将依赖于这个任务的后续任务的入度(后续任务所依赖的任务数,当后续任务执行前,必须等所有的依赖任务完成后才能执行,即等到后续任务的入度为零)减一。在任务执行时会记录其进程ID等信息,并在其运行后周期性的检查任务的运行状态,一旦某任务出现问题,则重启该任务,当任务的失败次数超过某个阈值时,则会丢弃该任务,并记录日志。若某个任务的执行时间超出了系统的容忍极限,则会认为其发生了未知的错误,该任务会被强制结束,并尝试重新执行该任务。
3)进程的交叉保护
该方法在启动时会启动2个进程,一个是系统守护进程,用于执行文件监控及触发、工作流执行和监控、日志记录、崩溃恢复等操作,另一个是系统的保护进程。两进程会进行周期性的握手通信,一旦有一方未反馈响应并超过一定次数限制,则发送信息一方认为另一方出现了异常,需要结束并重启另一方。同时,Linux的Cront服务也会周期接收来自这两方的心跳信息,若未收到其中任何一方的信息,则会去重启该进程。如图2所示。
4)日志记录
该方法自行实现了一个简单的日志系统。目前有两种类型的日志:一种是常规日志,用于记录整个系统在执行过程中的各种信息,该日志每天生成一个,在保存时以gzip格式压缩存储;还有一种是恢复日志,用于在整个系统崩溃之后执行恢复操作,它采用二进制格式保存,在恢复日志中保存的是最后一个处理完毕的文件的时间戳,如果系统崩溃后,重启时会将监控目录内晚于恢复日志最后一个所处理文件的时间的文件添加到等待队列中。
5)系统崩溃时的恢复
当系统从一个状态被恢复后,它首先检查崩溃日志中记录的任务执行断点信息,即最后一个处理完毕的文件的时间戳,根据该信息恢复任务的执行。
本发明的具体实施例举例说明如下:
该实施例的实施环境为:
操作系统:Ubuntu 10.04,Linux version 2.6.32-21-generic,
CPU:Inter(R),Xeon(R)X3323 2.50GHz*4,内存:2G
数据文件的到达目录/data/
在该环境下该方法的执行流程如下:系统首先会创建出ads.run和ads–prote这两个进程,ads–prote进程用于和系统的cront进程一起与ads.run进程进行交叉保护,如图2所示。而ads.run进程则主要负责数据的实时处理。ads.run的执行流程如图1所示,该进程启动后,首先从配置文件中读取相关参数,然后执行若干子系统的初始化工作,在初始化完毕后,进入到一个循环监听状态,在该状态会对serversocket和FileMonitor文件描述符执行系统的select操作,如果server socket位被设置,则说明有客户跟该进程执行了通信,如果是保护进程的握手信号,则该进程重放该信号;如果是请求结束任务的信号,则该进程会从运行队列中删除任务。如果FileMonitor文件描述符被设置,则说明该进程发现检测目录下有新的文件,会把文件添加到等待队列中。当任务池中的任务数目小于可以同时执行的任务数目时,队列中的任务会被添加到任务池中,此时,该进程通过fork系统调用生成子进程来执行新添加的子任务。新添加的子任务的执行情况会被记录到日志中。任务执行完毕后,该任务会从任务池中移走。还有一种情况是指定时间之后没有描述符被设置,即超时,这时会调用TimeOut函数,检查运行队列中的各个任务,如果保护进程已经没有响应,会尝试重启保护进程。
本发明可以自动监控指定目录数据文件的访问请求,并执行相应的处理流程。同时本方法提供了较为完善的保障机制和容错恢复机制。通过在服务器上使用本方法来对某指定目录进行监控,在一个月的实验中,该方法都能很好地完成到达数据的自动处理。对于人为制造的一些异常,包括系统重启、系统内存耗尽、处理流程意外退出等行为,该方法也能很好地应对。
Claims (1)
1.一种数据后台实时监控处理方法,以集群系统环境作为执行环境,其特征在于,该方法包括以下步骤:
步骤一,当在原始的数据目录中有新的数据文件生成,启动文件系统变化的监测机制进行文件监控及对数据进行处理,并记录日志;
步骤二,进行数据处理流程执行及监控,采用DAG图表示一个数据处理流程中的所有任务,其中顶点来表示一个任务,顶点间的指向方式表示任务之间的依赖关系;当流程执行时,采用类似拓扑排序的方式来执行所有任务;每次从任务队列中选择一个状态为Ready的任务,当这个任务正确执行完毕后,将依赖于这个任务的后续任务的入度减一;在任务执行时记录其PID信息,并在其运行后周期性的检查任务的运行状态,针对不同的运行状态采用以下反馈机制:一旦某任务出现问题,则重启该任务;当任务的失败次数超过某个阈值时,则会丢弃该任务,并记录日志;若某个任务的执行时间超出了系统的容忍极限,则会认为其发生了未知的错误,该任务会被强制结束,并尝试重新执行该任务;
步骤三,为进程设定交叉保护流程,该交叉保护流程初始时启动两个进程,一个是系统守护进程,用于执行文件监控及触发、工作流执行和监控、日志记录、崩溃恢复,另一个是系统保护进程,直接调用系统Cront进程进行系统保护;两进程会进行周期性的握手通信,一旦有一方未反馈响应并超过一定次数限制,则发送信息一方认为接收信息一方出现了异常,需要结束并重启接收信息一方;同时,Cront进程周期接收来自发送信息/接收信息这两方的心跳信息,若未收到其中任何一方的心跳信息,则重启该交叉保护流程;
步骤四,进行日志记录;
步骤五,系统崩溃时的恢复,当系统从一个状态被恢复后,它首先检查崩溃日志中记录的任务执行断点信息,即最后一个处理完毕的文件的时间戳,根据该信息恢复任务的执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210194323.XA CN102810073B (zh) | 2012-06-13 | 2012-06-13 | 数据后台实时监控处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210194323.XA CN102810073B (zh) | 2012-06-13 | 2012-06-13 | 数据后台实时监控处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810073A CN102810073A (zh) | 2012-12-05 |
CN102810073B true CN102810073B (zh) | 2014-11-12 |
Family
ID=47233782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210194323.XA Expired - Fee Related CN102810073B (zh) | 2012-06-13 | 2012-06-13 | 数据后台实时监控处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102810073B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067209B (zh) * | 2013-01-25 | 2017-09-15 | 浪潮电子信息产业股份有限公司 | 一种心跳模块自检测方法 |
CN104133730A (zh) * | 2014-07-30 | 2014-11-05 | 深圳市中兴移动通信有限公司 | 一种系统异常的修复方法、装置和移动终端 |
CN104484167B (zh) * | 2014-12-05 | 2018-03-09 | 广州华多网络科技有限公司 | 任务处理方法及装置 |
CN106294351A (zh) * | 2015-05-13 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 日志事件处理方法和装置 |
CN105302611B (zh) * | 2015-11-13 | 2019-10-25 | 中标软件有限公司 | 一种Linux下的启动计算机系统的方法及系统 |
CN106201756B (zh) * | 2016-07-12 | 2019-09-06 | 努比亚技术有限公司 | 日志获取装置、移动终端及方法 |
CN107454167A (zh) * | 2017-08-04 | 2017-12-08 | 深圳市元征科技股份有限公司 | 请求处理方法及服务器 |
CN109901970B (zh) * | 2019-02-15 | 2022-05-06 | 视联动力信息技术股份有限公司 | 一种视联网终端的监控方法和装置 |
CN111061911B (zh) * | 2019-12-17 | 2023-04-11 | 天津大学 | 面向多视频监控数据的目标检测与追踪方法、装置及设备 |
CN111209133B (zh) * | 2019-12-31 | 2023-09-12 | 深圳证券通信有限公司 | 一种有序系统发生软件故障的重演恢复方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316280A (zh) * | 2008-06-13 | 2008-12-03 | 南京邮电大学 | 基于反馈的网格资源智能监控方法 |
CN101408861A (zh) * | 2007-10-11 | 2009-04-15 | 鸿富锦精密工业(深圳)有限公司 | 应用程序实时监控系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5091894B2 (ja) * | 2009-03-13 | 2012-12-05 | 株式会社日立製作所 | ストリーム回復方法、ストリーム回復プログラム、および、障害回復装置 |
-
2012
- 2012-06-13 CN CN201210194323.XA patent/CN102810073B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408861A (zh) * | 2007-10-11 | 2009-04-15 | 鸿富锦精密工业(深圳)有限公司 | 应用程序实时监控系统及方法 |
CN101316280A (zh) * | 2008-06-13 | 2008-12-03 | 南京邮电大学 | 基于反馈的网格资源智能监控方法 |
Non-Patent Citations (2)
Title |
---|
Android后台监听实现机制浅析;蔡罗成;《信息安全与通信保密》;20100610;39-41 * |
蔡罗成.Android后台监听实现机制浅析.《信息安全与通信保密》.2010,39-41. * |
Also Published As
Publication number | Publication date |
---|---|
CN102810073A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102810073B (zh) | 数据后台实时监控处理方法 | |
CN109766701B (zh) | 针对异常进程结束操作的处理方法、装置、及电子装置 | |
US20190332453A1 (en) | Fault processing method, related apparatus, and computer | |
US20220179682A1 (en) | Task processing method, apparatus, and system based on distributed system | |
CN105843741B (zh) | 应用程序的信息处理方法和装置 | |
Machida et al. | Modeling and analysis of software rejuvenation in a server virtualized system | |
CN108363659B (zh) | 一种处理电子设备异常的方法及装置 | |
CN111124728B (zh) | 业务自动恢复方法、系统、可读存储介质及服务器 | |
JP6447258B2 (ja) | 管理プログラム、管理方法、および管理装置 | |
CN105045708A (zh) | 软件运行错误处理方法及系统 | |
CN104391777B (zh) | 基于Linux操作系统的云平台及其运行监控方法和装置 | |
CN106598594B (zh) | 一种快速恢复测试程序的测试系统及方法 | |
CN107357731A (zh) | 进程产生core dump问题的监控、分析和处理方法 | |
CN103428212A (zh) | 一种恶意代码检测及防御的方法 | |
EP3226153B1 (en) | Impact analysis-based task redoing method, impact analysis calculation apparatus and one-click reset apparatus | |
JP6942458B2 (ja) | プログラム、システム及び情報処理方法 | |
CN108062251B (zh) | 一种服务器资源回收方法以及计算机设备 | |
CN106897063B (zh) | 一种基于efi将os启动项永久添加至bios中的方法及系统 | |
JP2006065440A (ja) | プロセス管理システム | |
JPH07311693A (ja) | デバッグ方式 | |
TWI740886B (zh) | 日誌收集客戶端及其升級方法 | |
CN111090491B (zh) | 虚拟机任务状态的恢复方法、装置及电子设备 | |
JP7263206B2 (ja) | 情報処理システム、情報処理システムの制御方法、情報処理装置、及びプログラム | |
JP2018028798A (ja) | 情報処理装置及びプログラム | |
JP5466740B2 (ja) | 仮想サーバのシステム障害回復方法及びそのシステム |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141112 |
|
CF01 | Termination of patent right due to non-payment of annual fee |