风暴喷口堵塞过程

时间:2014-01-24 13:04:02

标签: java apache-storm

我想将一个spout实现为Socket Listener。为了检查阻塞过程如何在风暴中起作用,我将Scanner.in WordCounter示例的spout作为folows

public void nextTuple() {
        /**
         * The nextuple it is called forever, so if we have been readed the file
         * we will wait and then return
         */
        Scanner scanner=new Scanner(System.in);
        scanner.next();

        /* Code to read from file */

    }

当我尝试运行时会发生一些错误。如果我删除扫描仪代码,示例运行正常。有人能告诉我在风暴中如何处理阻塞过程?

1 个答案:

答案 0 :(得分:3)

在发出元组时使用的主要方法是nextTuple。所有spout方法都由同一个线程调用。如果在nextTuple中有任何阻塞,那么spout将无法发送心跳以确保其存活。因此,我建议你使用无阻塞功能。