可怕的你好世界骆驼的例子在骆驼在行动(帮助修复它!



所以,我正在尝试学习Apache Camel,他们在骆驼行动书中提供的Hello World示例如下:

public class FileCopierWithCamel {
    public static void main(String args[]) throws Exception {
    CamelContext context = new DefaultCamelContext();
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            from("file:data/inbox?noop=true").to("file:data/outbox");
        }
    });
    context.start();
    Thread.sleep(10000);
    context.stop();
}}

本示例尝试将所有文件从一个文件夹复制到另一个文件夹。

他们说它的行数较少,并称赞它与长 Java 版本相比有多好,这实际上比他们使用 Camel 提出的解决方案效果更好。

我这样说是因为这个提议的解决方案遇到了一个巨大的问题:它有一个等待。假设我想复制 1000 个文件 - 甚至更好 - 我不完全知道文件夹中的文件数量(在大多数情况下会发生这种情况)。使用此解决方案,我实际上必须猜测操作需要多长时间。这不仅已经是一个糟糕的开始,而且毫无意义。我是一名计算机工程师,而不是先知。

如何将此示例修改为仅在复制所有文件时停止?

还有另一种运行简单驼峰代码的方法,一种不需要sleep()的方法。

您可以简单地像这样重写您的示例:

public class FileCopierWithCamel2 {
    public static void main(String[] args) throws Exception {
        Main camelMain = new Main();
        camelMain.addRouteBuilder(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("file:data/inbox?noop=true").to("file:data/outbox");
            }
        });
        camelMain.run();
    }
}

希望这对;)有所帮助

相关内容

  • 没有找到相关文章

最新更新