Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package finance;
- import java.io.IOException;
- import java.math.BigDecimal;
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.Map;
- import org.apache.storm.spout.SpoutOutputCollector;
- import org.apache.storm.task.TopologyContext;
- import org.apache.storm.topology.IRichSpout;
- import org.apache.storm.topology.OutputFieldsDeclarer;
- import org.apache.storm.tuple.Fields;
- import org.apache.storm.tuple.Values;
- import yahoofinance.YahooFinance;
- import yahoofinance.quotes.stock.StockQuote;
- public class YahooFinanceSpout implements IRichSpout {
- private SpoutOutputCollector collector;
- public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
- this.collector = collector;
- }
- public void declareOutputFields(OutputFieldsDeclarer declarer) {
- declarer.declare(new Fields("company", "timestamp", "price", "prev_close"));
- }
- public void nextTuple() {
- DateTimeFormatter formatter = DateTimeFormatter.BASIC_ISO_DATE;
- try {
- StockQuote quote = YahooFinance.get("MSFT").getQuote(); // Financas
- // da
- // Microsoft
- BigDecimal price = quote.getPrice();
- BigDecimal prevClose = quote.getPreviousClose();
- collector.emit(new Values("MSFT", formatter.format(LocalDate.now()), price.doubleValue(),
- prevClose.doubleValue()));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public void ack(Object arg0) {
- }
- public void activate() {
- }
- public void close() {
- }
- public void deactivate() {
- }
- public void fail(Object arg0) {
- }
- public void open1(Map arg0, TopologyContext arg1, SpoutOutputCollector arg2) {
- }
- public Map<String, Object> getComponentConfiguration() {
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement