Ejemplo n.º 1
0
'''join_streamlet_topology.py: module is an example of how to use the join operator'''

import sys

from heronpy.streamlet.builder import Builder
from heronpy.streamlet.runner import Runner
from heronpy.streamlet.config import Config
from heronpy.streamlet.windowconfig import WindowConfig
from heronpy.connectors.mock.arraylooper import ArrayLooper

# pylint: disable=superfluous-parens
if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("Topology's name is not specified")
        sys.exit(1)

    builder = Builder()

    source_1 = builder.new_source(
        ArrayLooper([["key1", "a"], ["key1", "b"]], sleep=1))

    source_2 = builder.new_source(
        ArrayLooper([["key1", "c"], ["key1", "d"]], sleep=1))

    source_1.join(source_2, WindowConfig.create_sliding_window(2, 1),
                  lambda x, y: x + y).log()

    runner = Runner()
    config = Config()
    runner.run(sys.argv[1], config, builder)
class SlowGenerator1(SlowGenerator):
    def get(self):
        sleep(1)
        return choice(self._words)


class SlowGenerator2(SlowGenerator):
    def get(self):
        sleep(1.5)
        return (choice(self._words), choice(self._words))


from heronpy.streamlet.builder import Builder
from heronpy.streamlet.config import Config
from heronpy.streamlet.runner import Runner

if __name__ == '__main__':
    builder = Builder()

    stream_1 = builder.new_source(SlowGenerator1())
    stream_2 = builder.new_source(SlowGenerator2())

    stream_3 = stream_1.map(lambda x: x + " !!!")
    stream_4 = stream_2 \
      .map(lambda x: x[0] + " & " + x[1] + " !!!")

    stream_3.union(stream_4).map(lambda x: x + " !!!").log()

    Runner().run("my-python-streamlet", Config(), builder)