书签 分享 收藏 举报 版权申诉 / 6

一种基于REDIS实现多WORKER协同的系统.pdf

  • 上传人:zhu****_FC
  • 文档编号:6006768
  • 上传时间:2019-04-02
  • 格式:PDF
  • 页数:6
  • 大小:327.28KB
  • 摘要
    申请专利号:

    CN201610920068.0

    申请日:

    2016.10.21

    公开号:

    CN106445648A

    公开日:

    2017.02.22

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 9/46申请日:20161021|||公开

    IPC分类号:

    G06F9/46; G06F9/48

    主分类号:

    G06F9/46

    申请人:

    天津海量信息技术股份有限公司

    发明人:

    崔运海

    地址:

    300000 天津市滨海新区华苑产业区榕苑路1号B北322-323室

    优先权:

    专利代理机构:

    代理人:

    PDF完整版下载: PDF下载
    内容摘要

    一种基于redis实现多worker协同的系统,开始重新获取一批待处理的任务,以任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周期为1分钟的key‑value值,其中key值是任务名称,value值为累加数值,发送key的任务汇总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比较,如果没有超过限额,则执行这批任务,如果部分超额则拒绝超额部分并且执行未超额部分,如果全部超额,则全部拒绝执行任务task。本系统为分布式计算的集群中对计算任务task协同控制速度的通用解决技术方案。

    权利要求书

    1.一种基于redis实现多worker协同的系统,其特征在于:开始重新获取一批待处理的
    任务,以任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立
    生存周期为1分钟的key-value值,其中key值是任务名称,value值为累加数值,发送key的
    任务汇总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所
    以汇总到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量
    进行value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进
    行比较,如果没有超过限额,则执行这批key名称任务的task,如果部分超额则拒绝超额部
    分并且执行未超额部分,如果全部超额,则全部拒绝执行任务task。

    说明书

    一种基于redis实现多worker协同的系统

    技术领域

    本发明属于软件系统技术领域,尤其涉及一种基于redis实现多worker协同的系
    统。

    背景技术

    随着互联网大数据时代的到来,越来越多的计算任务task需要交多个计算机
    (worker)组成的集群来并发处理,由于计算任务中的task对资源(cpu/io/disk)的消耗差
    别很大,这个时候特别需要合理的安排任务,以防止某类任务占用过多资源造成系统过载,
    进而影响系统的稳定行和可靠性,因此特别需要一个高效稳定的解决方案来应对此问题。

    发明内容

    本发明所解决的技术问题采用以下技术方案来实现:提供一种基于redis实现多
    worker协同的系统,是分布式计算的集群中对计算任务task协同控制速度的通用解决技术
    方案。

    一种基于redis实现多worker协同的系统,开始重新获取一批待处理的任务,以任
    务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周期
    为1分钟的key-value值,其中key值是任务名称,value值为累加数值,发送key的任务汇总
    数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总到
    redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行value
    累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比较,如
    果没有超过限额,则执行这批key名称任务的task,如果部分超额则拒绝超额部分并且执行
    未超额部分,如果全部超额,则全部拒绝执行任务task。

    本发明的有益效果为:本系统用redis来实现计数器功能,因为整个系统采用的是
    星型结构,所以各类任务task的计数以key-value形式,集中存储在redis中,key为任务
    task的名称,value为对应的计数;本系统是分布式计算的集群中对计算任务task协同控制
    速度的通用解决技术方案。

    附图说明

    图1是本发明的程序流程图

    图2是本发明worker和redis计数器时序图样例

    图3是本发明系统结构图

    具体实施方式

    参照附图,一种基于redis实现多worker协同的系统,其中计算机集群中的各计算
    节点统称为worker,计算任务统称为task,task的计数以key-value形式,集中存储在redis
    中,key为任务task的名称,value为对应的计数,首先开始重新获取一批待处理的任务,以
    任务类名称为key进行汇总数量,其中redis计数器根据以task的任务名为key建立生存周
    期为1分钟的key-value值,其中key值是任务名称,value值为累加数值,发送key的任务汇
    总数量到redis请求对key的value进行累加,其中由于集群中的worker并行请求,所以汇总
    到redis里面后会进行排队,然后串行处理worker的key的累加请求,对请求的数量进行
    value累加,返给worker累加后的数值,累加后value值和系统中的每分钟的限量值进行比
    较,如果没有超过限额,则执行这批key名称任务的task,如果部分超额则拒绝超额部分并
    且执行未超额部分,如果全部超额,则全部拒绝执行任务task。

    worker先取一批计算任务task,然后对这批task按照名称为key进行分类汇总,汇
    总后,按照名称和数量申请redis里面的对应任务名称作为key的计数器进行累加,如果
    redis里面没有此任务名称key的计数器,则生成一个新的进行累加,并且设置好失效时间,
    如果有此名key对应的计数器,则进行对value进行累加,并且把累加结果返回给worker,由
    于在redis里面的key支持生命周期,我们给key值设置为1分钟,则1分钟后,无论key值对应
    的value值变成多大,key都会消失,进而很简单高效的实现1分钟限速。

    本系统用redis来实现计数器功能,因为整个系统采用的是星型结构,所以各类任
    务task的计数以key-value形式,集中存储在redis中,key为任务task的名称,value为对应
    的计数;本系统是分布式计算的集群中对计算任务task协同控制速度的通用解决技术方
    案。

    利用本发明所述的技术方案,或本领域的技术人员在本发明技术方案的启发下,
    设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。

    关 键  词:
    一种 基于 REDIS 实现 WORKER 协同 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于REDIS实现多WORKER协同的系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6006768.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1