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

2019-04-29 10:58:25 +08:00
 darkem4869

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

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

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

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

1328 次点击
所在节点    Java
3 条回复
darkem4869
2019-04-29 14:55:50 +08:00
不要沉了吧.大家都没有想法了嘛
xinQing
2019-04-29 21:44:01 +08:00
storm 没这样玩啊,都是常驻运行,关掉干啥,复用不行么
darkem4869
2019-05-13 17:10:49 +08:00
@xinQing 可能我没有表述清楚, 一个任务分散了, 然后由于在 bolt 里面进行了查询操作, 比较耗时, 如果超过 2s 的话,希望这个 bolt 中断, 而且和分散的任务也中断

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/559677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX