[英]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.BatchSpoutExecutor
和BatchSpoutExecutor.BatchSpoutEmitter.
我记得,在实现这些接口的情况下,请检查Trident示例。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.