V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
darkem4869
V2EX  ›  Java

关于管理 storm bolt 运行时间的问题

  •  
  •   darkem4869 · 2019-04-29 10:58:25 +08:00 · 1461 次点击
    这是一个创建于 2028 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近工作上碰到一个问题想请教一下各位前辈: 背景: 一个 sendBolt 去拆分日期,分成每一天, 一个 readbolt 去处理每一天的任务, 包括连接数据库,获取数据,计算等, 需求: 现在由于请求量大, 导致处理一个任务时间(计算一天的任务)时间超长, 现在希望监控这个 bolt 处理的时间,超过 10s 就把这个 bolt 关掉(核心需求) 最好是把这个超时任务的 blot 相关的其他任务都关掉(附加需求)

    需求例如: 你要数你办公室里同事总共有多少根头发> sendBolt 就是分成每个人, readbolt 就是把脑袋分成左右两边,然后开始数, 需求是: 当你数这个人的头发超过 10s 了, 你就不数了(核心)最好通知别人也不数了.

    现在我的想法是在 execute 中去建一个 futruetask,利用线程 futruetask 的超时机制来抛出异常来实现,而组长说这么做会不好管理,怕内存泄漏,反正他就是怕麻烦.

    所以请问各位有什么好的想法吗

    3 条回复    2019-05-13 17:10:49 +08:00
    darkem4869
        1
    darkem4869  
    OP
       2019-04-29 14:55:50 +08:00
    不要沉了吧.大家都没有想法了嘛
    xinQing
        2
    xinQing  
       2019-04-29 21:44:01 +08:00
    storm 没这样玩啊,都是常驻运行,关掉干啥,复用不行么
    darkem4869
        3
    darkem4869  
    OP
       2019-05-13 17:10:49 +08:00
    @xinQing 可能我没有表述清楚, 一个任务分散了, 然后由于在 bolt 里面进行了查询操作, 比较耗时, 如果超过 2s 的话,希望这个 bolt 中断, 而且和分散的任务也中断
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 11:45 · PVG 19:45 · LAX 03:45 · JFK 06:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.