如何在storm应用中实现定时调度
发表于:2025-02-14 作者:千家信息网编辑
千家信息网最后更新 2025年02月14日,这篇文章给大家介绍如何在storm应用中实现定时调度,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在storm中实时定时调度, 较好的方式是利用spout的nextTuple()
千家信息网最后更新 2025年02月14日如何在storm应用中实现定时调度
这篇文章给大家介绍如何在storm应用中实现定时调度,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
在storm中实时定时调度, 较好的方式是利用spout的nextTuple()不断循环触发你的定时任务。
首先, 把需要定时调度的逻辑用一个bolt实现,其execute方法的伪代码如下:
// 从topology的全局对象 backtype.storm.Config取得上次调度时间 Date 上次调度时间 = config.get("上次调度时间"); if ( 如果当前时间 - 上次调度时间 >= 调度间隔 ) { // 执行具体业务逻辑 doTask(); // 将本次执行时间存入全局对象 backtype.storm.Config config.put("上次调度时间", 当前时间); }
然后, 定义一个专门的定时发送消息的spout,如以下每隔8秒发送一条消息:
@Override public void nextTuple() { try { Thread.sleep(8 * 1000); collector.emit(new Values("Let's go!")); } catch (Exception e) { log.error("", e); } }
这个spout发出的消息没有任何业务意义,只是为了触发上面的bolt。
补充说明,如果以上代码在执行 config.put() 时抛出异常 "storm Async loop died!" , 那就改为用redis保存最近一次的执行时间。
关于如何在storm应用中实现定时调度就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
调度
时间
中实
消息
应用
业务
代码
全局
内容
对象
更多
逻辑
帮助
不错
不断
任务
兴趣
只是
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
亳州网络安全演习
问道手游新区服务器多少钱
中间件数据库升级
软件开发是服务类还是采购类
昆明fil服务器介绍
广州聚智同创互联网科技有限公司
java 多系统多数据库
淘宝用户与淘宝数据库的连接
手机直播软件开发语言
儒意顺软件开发
黑期权app能查到软件开发商吗
湛江网络安全高品质的教学
监控录像备份管理服务器作用
java软件开发主要学什么
进服务器显示未知主机
域服务器 dns
网络安全专科教材
士官学院计算机网络技术
境外服务器购买
网络安全6月
长沙直播软件开发商
路由器键入网络安全密钥
大型监控服务器安装图
网络安全相关法律发展
永劫无间今天无法连接服务器
数据库主要特点
软件开发毕业论文内容
增辉软件开发有限公司
瑞为技术人脸识别数据库
标准网络技术价格咨询