繁体   English   中英

在Storm Bolt中轮询并触发任务

[英]Poll and trigger a task in Storm Bolt

我有一个螺栓,它使用一种方法(例如loadDataFromFile() )从磁盘上的文件(例如/blah/blah/movie_data.csv )中加载数据,并将其存储在内存中。 每天上午10点刷新此文件(保证在上午10点更新)。 我希望我的Bolt刷新文件后(在上午10点后的任何时间)重新加载文件中的所有数据。

我该如何实施? 我应该轮询movie_data.csv并检查时间戳是否比上次文件加载时间更新,如果是,则触发loaddataFromFile()方法? 还是可以使用某种形式的tick元组来完成?

我不需要代码/伪代码。 只是一些与库/类相关的指针。 我已经看过tick元组,但是这里似乎没有帮助,因为我想在特定时间而不是每T秒刷新一次文件。

有没有一种方法可以让螺栓在预定时间(例如每天上午10点)接收tick元组? 这样,我将不必使用轮询来检查文件是否已刷新。

这取决于您是否使用Trident拓扑。 如果它是三叉戟拓扑,则可以实现storm.trident.spout.BatchSpoutExecutorBatchSpoutExecutor.BatchSpoutEmitter. 我记得,在实现这些接口的情况下,请检查Trident示例。

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM