The invention relates to a single thread log sending management method, which comprises the following steps: generating log dispatching request, receiving log dispatching request by log dispatching management module, generating log dispatching management module to send sendDataTask task, dispatching it to synchronous task queue, and sending sendDataTask task to be executed by log dispatching management module. If there is a contention, the task is persisted and added to the data cache queue. If there is no contention, the following steps are performed: first set the synchronization flag isActive to be true, then execute the log to send the network request asycSend, and then send the network request node in the log After the beam, generate the continue log to send the sendNextTask task and distribute it to the synchronous task queue. The invention has the advantages of simple algorithm, clear scheduling, avoiding the influence of competition on log management by synchronizing task queues, and easy maintenance.
【技术实现步骤摘要】
一种单线程日志发送管理的方法
本专利技术涉及单线程
及日志管理
,具体说是一种单线程日志发送管理的方法。
技术介绍
日志管理系统中,常规思路是用一个线程(即单线程)单独管理日志(例如一个线程单独写日志、发送日志等),虽然系统开发比较容易,但由于需要在上一个任务完成后才能开始新的任务,所以其效率通常比多线程日志管理系统低。如果完成同步任务所用的时间比预计时间长,日志管理系统可能会不响应。单线程是指程序执行时,所跑的程序路径(处理的东西)是连续顺序下来的,必须前面的处理好,后面的才会执行到。单线程日志发送管理指的是:日志发送请求在同一时间,只能有一个任务在执行,不存在并发任务。在单线程日志发送管理中,如果上一次日志发送请求尚未完成,而新的日志发送请求又已产生,则会出现竞争关系,或导致日志信息不完整,影响日志管理系统的安全、可靠运行。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种单线程日志发送管理的方法,算法简洁,调度清晰,通过同步任务队列避免竞争关系对日志管理的影响,易于维护。为达到以上目的,本专利技术采取的技术方案是:一种单线程日志发送管理的方法,其特征在于,包括如下步骤:触发日志发送事件sendLog,产生日志派发请求,日志派发管理模块接收日志派发请求,日志派发管理模块生成日志发送sendDataTask任务,并派发到同步任务队列,日志发送sendDataTask任务在执行过程中,判定当前是否存在竞争关系,如果存在竞争关系,则将任务持久化后得到日志持久化数据datan,n=1,2,3……,将日志持久化数据datan添加到数据 ...
【技术保护点】
1.一种单线程日志发送管理的方法,其特征在于,包括如下步骤:触发日志发送事件sendLog,产生日志派发请求,日志派发管理模块接收日志派发请求,日志派发管理模块生成日志发送sendDataTask任务,并派发到同步任务队列,日志发送sendDataTask任务在执行过程中,判定当前是否存在竞争关系,如果存在竞争关系,则将任务持久化后得到日志持久化数据data n,n=1,2,3……,将日志持久化数据data n添加到数据缓存队列,如果没有竞争关系,则执行以下步骤:首先设置同步标志isActive为真,然后执行日志发送网络请求asycSend,在日志发送网络请求结束后,生成继续日志发送sendNextTask任务,并派发到同步任务队列。
【技术特征摘要】
1.一种单线程日志发送管理的方法,其特征在于,包括如下步骤:触发日志发送事件sendLog,产生日志派发请求,日志派发管理模块接收日志派发请求,日志派发管理模块生成日志发送sendDataTask任务,并派发到同步任务队列,日志发送sendDataTask任务在执行过程中,判定当前是否存在竞争关系,如果存在竞争关系,则将任务持久化后得到日志持久化数据datan,n=1,2,3……,将日志持久化数据datan添加到数据缓存队列,如果没有竞争关系,则执行以下步骤:首先设置同步标志isActive为真,然后执行日志发送网络请求asycSend,在日志发送网络请求结束后,生成继续日志发送sendNextTask任务,并派发到同步任务队列。2.如权利要求1所述的单线程日志发送管理的方法,其特征在于:所述继续日志发送sendNextTask任务,从数据缓存队列中获取待发送的日志持久化数据d...
【专利技术属性】
技术研发人员:郭艳杰,
申请(专利权)人:北京酷我科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。