รายชื่อผู้รับ Apache Camel EIP

ฉันกำลังพยายามใช้รูปแบบ RecipientList ใน Camel แต่ฉันคิดว่าฉันอาจจะพลาดประเด็นไป รหัสต่อไปนี้จะแสดงเพียงรายการเดียวบนหน้าจอ:

@Override
protected RouteBuilder createRouteBuilder() {
    return new RouteBuilder() {
        public void configure() {
            from("direct:start").recipientList(bean(MyBean.class, "buildEndpoint"))
                    .streaming()
                    .process(new Processor() {
                        @Override
                        public void process(Exchange exchange) throws Exception {
                            System.out.println(exchange.getExchangeId());
                        }
                    });
        }
    };
}

public static class MyBean {
    public static String[] buildEndpoint() {
        return new String[] { "exec:ls?args=-la", "exec:find?args=."};
    }
}

ฉันยังลองส่งคืนสตริงที่คั่นด้วยเครื่องหมายจุลภาคจากเมธอด buildEndpoint() และใช้โทเค็น (",") ในนิพจน์ของคำจำกัดความส่วนประกอบผู้รับรายการ () แต่ฉันยังคงได้รับผลลัพธ์เหมือนเดิม ฉันพลาดอะไรไป?


person Corey J. Nolet    schedule 28.03.2014    source แหล่งที่มา


คำตอบ (1)


เป็นไปตามที่คาดไว้ รายชื่อผู้รับจะส่งสำเนาข้อความเดียวกันไปยังผู้รับ X ราย ตัวประมวลผลที่คุณทำในภายหลังคือ หลังจาก รายชื่อผู้รับเสร็จสิ้น ดังนั้นจึงถูกดำเนินการเพียงครั้งเดียวเท่านั้น

person Claus Ibsen    schedule 28.03.2014
comment
ฉันเข้าใจอย่างถ่องแท้ แต่เกิดอะไรขึ้นกับข้อความทั้งหมดที่ส่งมาจากจุดสิ้นสุดผู้รับรายการ ดูเหมือนว่ามีเพียงปลายทางสุดท้ายเท่านั้นที่เข้าสู่โปรเซสเซอร์ขั้นสุดท้าย - person Corey J. Nolet; 29.03.2014
comment
ใช่แล้ว พวกมันถูกรวมเข้าด้วยกัน คุณสามารถใช้กลยุทธ์การรวมแบบกำหนดเองได้ - person Claus Ibsen; 29.03.2014