我有一个使用方法(比如/blah/blah/movie_data.csv
)从磁盘上的文件(例如loadDataFromFile()
)加载数据的螺栓,并将其存储在内存中。此文件每天上午10点刷新(保证在上午10点之前更新)。我希望我的螺栓在刷新后重新加载文件中的所有数据(上午10点之后不久)。
我该如何实现?我应该轮询movie_data.csv
并检查时间戳是否比上一个文件加载时间更新,如果是,则触发loaddataFromFile()
方法?或者这可以使用某种形式的tick
元组来完成吗?
我不需要代码/伪代码。关于可能相关的库/类的一些指示。我已经查看了tick
元组,但它似乎没有帮助,因为我想在特定时间刷新文件,而不是每隔T秒刷新一次。
螺栓有没有办法在预定时间(例如每天上午10点)接收tick
元组?这样,我就不必使用轮询来检查文件是否已刷新。
答案 0 :(得分:0)
这取决于您是否使用Trident拓扑。如果它是Trident拓扑,您可以实现storm.trident.spout.BatchSpoutExecutor
和BatchSpoutExecutor.BatchSpoutEmitter.
我记得,检查Trident示例,因为它们实现了这些接口。
希望这会有所帮助。