colinsurprenant/redstorm

View on GitHub
examples/dsl/hello_world_topology.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'red_storm'

class HelloWorldSpout < RedStorm::DSL::Spout
  on_init {@words = ["hello", "world"]}
  on_send {@words.shift unless @words.empty?}
end

class HelloWorldBolt < RedStorm::DSL::Bolt
  on_receive :emit => false do |tuple|
    log.info(tuple[0]) # tuple[:word] or tuple["word"] are also valid
  end
end

class HelloWorldTopology < RedStorm::DSL::Topology
  spout HelloWorldSpout do
    output_fields :word
  end

  bolt HelloWorldBolt do
    source HelloWorldSpout, :global
  end

  configure do
    debug false
    max_task_parallelism 4
    num_workers 1
    max_spout_pending 1000
  end
end