一种基于统计表的多任务数据推送方法技术

技术编号:21121180 阅读:66 留言:0更新日期:2019-05-16 10:44
本发明专利技术属于网络分析应用技术领域,具体涉及一种基于统计表的多任务数据推送方法,其特征在于推送步骤包括:第一步,建立任务优先级规则;第二步,建立任务队列;第三步,建立任务对象集双缓存;第四步,建立推送任务配置解析机制;第五步,建立任务更新流程;第六步,建立任务获取、执行、归还机制;第七步,根据任务执行线程的属性进行多任务数据的推送,本发明专利技术提供的一种基于统计表的多任务数据推送方法解决了由于推送任务排队执行导致的延迟问题,解决了由于“时间桶”较大耗时较长的“推送任务”对其他“时间桶”较小耗时较短的延迟影响,提升了推送效率,提升了“数据采集系统”的推送性能的扩展性。

【技术实现步骤摘要】
一种基于统计表的多任务数据推送方法
本专利技术属于网络分析应用
,具体涉及一种基于统计表的多任务数据推送方法。
技术介绍
在“网络分析系统”中,针对网口采集上来的数据,生成一条一条的存储统计记录后,至少有两种使用方式:前台系统主动发起查询,“网络分析系统”按照指定时间条件、查询条件和合并条件,查询出存储统计记录并进行合并后,发送给前台系统;“网络分析系统”作为数据源,主动推送数据到其他系统。第三方系统一次性下发多个查询任务,任务描述包括查询周期、查询条件和合并条件。“网络分析系统”根据系统时间,每间隔指定时间周期,就依次对每个任务进行查询,并将查询结果推送给第三方系统。由此,第三方系统可以源源不断的接收到来自“网络分析系统”推送的数据。一般情况下,查询周期较长的任务,则查询耗时也相对较长,当第三方系统下发的任务数较多,查询周期种类较多时,由于查询任务数量和各种查询周期的任务相互影响,则会导致无法在一个查询周期内完成所有任务的查询和推送。采用单线程依次查询每个任务并进行推送的方法时,由于任务数量非常多,则依次执行情形下,很可能最后执行的任务已经超过要求的时间周期。举例说明:如执行查询时间周期为10S,总共查询任务由50个任务,则要求执行完这50个任务的总时间不能超过10S,否则下一个查询周期将会延迟。部分可能采用多线程执行的情况,相对于单线程,多线程可以并行执行多个任务,对于单线程的问题会有所缓解,但无法避免不同时间周期的任务相互影响的情况。举例说明:查询时间周期为10S的任务有50个,查询时间周期为1Min的任务有10个,推送线程有5个,推送线程依次获取任务。则查询周期为10S的任务要求所有50个任务在10S钟内完成,查询周期为1Min的任务要求所有10个任务在1Min之内完成。一般情况下,查询周期为1Min的任务,查询耗时也会较长,超过10S。因此,如果所有5个线程都在执行1Min时间周期的任务,则将会使所有时间周期为10S的任务,全部延迟。且这种情况很容易出现。
技术实现思路
本专利技术针对上述现有技术的不足,提供了一种基于统计表的多任务数据推送方法。本专利技术的目的是通过以下技术方案实现的:一种基于统计表的多任务数据推送方法,其特征在于推送步骤包括:第一步,建立任务优先级规则;第二步,建立任务队列;第三步,建立任务对象集双缓存;第四步,建立推送任务配置解析机制;第五步,建立任务更新流程;第六步,建立任务获取、执行、归还机制;第七步,根据任务执行线程的属性进行多任务数据的推送。所述步骤第一步的详细步骤包括:a.数据分析系统下发推送任务配置时,如设定了优先级,则以此优先级为准,否则,以下面的b,c,d步骤建立优先级;b.推送任务都有一个时间桶属性,对于任务类型为query_data的推送任务,越小时间桶的任务,实时性要求越高,那么对于此类推送任务的优先级顺序如下:1S>10S>1M>10M>1H>1D;c.除了需要查询数据任务类型为query_data的推送任务外,还有不需要查询数据的推送任务,因此增加两个优先级A,B,优先级顺序为:A>1S>10S>1M>10M>1H>1D>B;d.一个非query_data的推送任务,耗时很短,实时性要求很高,则任务优先级属性可设置为A,否则设置其优先级为B,也可以设置为A和B之间的任一优先级。所述步骤第二步的详细步骤包括:a.按照优先级规则,总共有8个优先级,即:A>1S>10S>1M>10M>1H>1D>B,用数字表示优先级序号为1,2,3,4,5,6,7,8,优先级1为最高优先级,优先级8为最低优先级;b.每个优先级建立一个无锁任务队列,则无锁任务队列序号为1,2,3,4,5,6,7,8;c.任务执行线程可通过任务管理器从任一无锁任务队列获取任务步骤C,任务对象集双缓存可以快速响应数据分析系统下发的推送任务配置更新请求。所述任务对象集有三种状态:USING、READY和FREE。所述USING为无锁任务队列正在使用本任务对象集、READY为已将数据分析系统下发的推送任务配置解析到本任务对象集和FREE为空闲状态时数据分析系统下发的推送任务配置可以更新到本任务对象集。所述第四步的详细步骤包括:a.若当前无FREE状态的任务对象集,则立即通知数据分析系统更新失败,输出原因:太频繁;b.解析完配置,更新任务对象集状态为FREE→READY。所述第五步的详细步骤包括:a.设置任务对象集状态为READY;b.设置取标记:任务执行线程不能再取任务;c.从无锁任务队列中弹出所有任务,直到所弹出个等于USING任务对象集中的配置对象个数,此时所有优先级的无锁任务队列中的任务被清空完毕;d.把READY状态的任务对象集中的任务加入到相应优先级的无锁任务队列;e.设置任务对象集状态为READY→USING,USING→FREE。所述第六步的详细步骤包括:a.“任务执行线程”通过“任务管理器”获取优先级1的第一个任务b.“任务管理器”判断任务可否被执行,若可执行则输出:已到执行时间,若不可执行则输出:未到执行时间,归还此任务到对应优先级至无锁任务队列,获取下一个优先级的任务,重复b步骤;c.执行任务;d.归还此任务到对应优先级无锁任务队列;e.跳转到a。所述第七步的详细步骤包括:任务执行线程最先执行优先级最高的任务,每个任务执行线程的能力相同,可根据数据采集系统数据量大小,通过配置CPU核心数量,灵活分配推送能力。本专利技术的有益效果:1.本专利技术提供的一种基于统计表的多任务数据推送方法解决了由于推送任务排队执行导致的延迟问题,提升了推送的工作效率。2.本专利技术提供的一种基于统计表的多任务数据推送方法解决了由于“时间桶”较大耗时较长的“推送任务”对其他“时间桶”较小耗时较短的延迟影响,提升了推送效率。3.本专利技术提供的一种基于统计表的多任务数据推送方法提升了“数据采集系统”的推送性能的扩展性。附图说明本专利技术的前述和下文具体描述在结合以下附图阅读时变得更清楚,附图中:图1是本专利技术中推送任务配置更新请求流程图;图2是本专利技术中更新任务的流程图;图3是本专利技术中任务执行流程图。具体实施方式下面通过几个具体的实施例来进一步说明实现本专利技术目的技术方案,需要说明的是,本专利技术要求保护的技术方案包括但不限于以下实施例。实施例1:一种基于统计表的多任务数据推送方法,其特征在于推送步骤包括:第一步,建立任务优先级规则;第二步,建立任务队列;第三步,建立任务对象集双缓存;第四步,建立推送任务配置解析机制;第五步,建立任务更新流程;第六步,建立任务获取、执行、归还机制;第七步,根据任务执行线程的属性进行多任务数据的推送。实施例2:一种基于统计表的多任务数据推送方法,其特征在于推送步骤包括:第一步,建立任务优先级规则;第二步,建立任务队列;第三步,建立任务对象集双缓存;第四步,建立推送任务配置解析机制;第五步,建立任务更新流程;第六步,建立任务获取、执行、归还机制;第七步,根据任务执行线程的属性进行多任务数据的推送。所述步骤第一步的详细步骤包括:a.数据分析系统下发推送任务配置时,如设定了优先级,则以本文档来自技高网
...

【技术保护点】
1.一种基于统计表的多任务数据推送方法,其特征在于推送步骤包括:第一步,建立任务优先级规则;第二步,建立任务队列;第三步,建立任务对象集双缓存;第四步,建立推送任务配置解析机制;第五步,建立任务更新流程;第六步,建立任务获取、执行、归还机制;第七步,根据任务执行线程的属性进行多任务数据的推送。

【技术特征摘要】
1.一种基于统计表的多任务数据推送方法,其特征在于推送步骤包括:第一步,建立任务优先级规则;第二步,建立任务队列;第三步,建立任务对象集双缓存;第四步,建立推送任务配置解析机制;第五步,建立任务更新流程;第六步,建立任务获取、执行、归还机制;第七步,根据任务执行线程的属性进行多任务数据的推送。2.根据权利要求1所述一种基于统计表的多任务数据推送方法其特征在于:所述步骤第一步的详细步骤包括:a.数据分析系统下发推送任务配置时,如设定了优先级,则以此优先级为准,否则,以下面的b,c,d步骤建立优先级;b.推送任务都有一个时间桶属性,对于任务类型为query_data的推送任务,越小时间桶的任务,实时性要求越高,那么对于此类推送任务的优先级顺序如下:1S>10S>1M>10M>1H>1D;c.除了需要查询数据任务类型为query_data的推送任务外,还有不需要查询数据的推送任务,因此增加两个优先级A,B,优先级顺序为:A>1S>10S>1M>10M>1H>1D>B;d.一个非query_data的推送任务,耗时很短,实时性要求很高,则任务优先级属性可设置为A,否则设置其优先级为B,也可以设置为A和B之间的任一优先级。3.根据权利要求1所述一种基于统计表的多任务数据推送方法其特征在于:所述步骤第二步的详细步骤包括:a.按照优先级规则,总共有8个优先级,即:A>1S>10S>1M>10M>1H>1D>B,用数字表示优先级序号为1,2,3,4,5,6,7,8,优先级1为最高优先级,优先级8为最低优先级;b.每个优先级建立一个无锁任务队列,则无锁任务队列序号为1,2,3,4,5,6,7,8;c.任务执行线程可通过任务管理器从任一无锁任务队列获取任务。4.根据权利要求1所述一种基于统计表的多任务数据推送方法其特征在于:所述步骤第三步的详细步骤为:任务对象集双缓存可以快速响应数据分析系统下发的推送任...

【专利技术属性】
技术研发人员:林康罗鹰李春生罗勤
申请(专利权)人:成都科来软件有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1