当前位置: 首页 > 知识库问答 >
问题:

Apache Camel-需要递归地读取文件

龚镜
2023-03-14
    <route>
        <!--  Reading from MDW REST url -->
        <from uri="mdw:REST/REST" />
        <!--  Parsing OrderNumber and OrderVersion-->
        <setHeader headerName="OrderNumber">
            <xpath>Some path</xpath>
        </setHeader>
        <setHeader headerName="OrderVersion">
            <xpath>Some path</xpath>
        </setHeader>
        <!-- Request being put in file folder -->
        <to
            uri="file:data/inbox?fileName=${header.OrderNumber}-${header.OrderVersion}.xml"
            pattern="InOut" />
    </route>
    <!-- route with when clause: Checks memory consumption before putting message 
        on queue. If consumption below threshold put on queue
        else put back into input folderk-->
    <route>
        <from uri="file:data/inbox" />
        <camel:process ref="checkMemoryConsumption" />
        <camel:when>
        <!-- If  -->
            <camel:simple>${in.header.result} == 'true'</camel:simple>
            <camel:convertBodyTo type="String" />
            <to uri="jms queue"
                pattern="InOut" />
        </camel:when>
        <camel:when>
            <camel:simple>${in.header.result} == 'false'</camel:simple>
            <camel:convertBodyTo type="String" />
            <to uri="file:data/inbox"  pattern="InOut" />
        </camel:when>
    </route>
<camel:route>
<camel:from uri="file:data/inbox"/>
<camel:filter>
    <method ref="checkMemory" method="isFreeMemoryAboveSafeLimit"/>
    <to uri="jms:queue:com.centurylink.mdw.external.event.queue"
            pattern="InOut" />
</camel:filter>

共有1个答案

谢修真
2023-03-14

也许可以使用一个文件过滤器,在其中检查内存消耗,并返回true false是否要接受该文件。那么您就不需要在路由中添加该选项。

请参阅筛选器选项

  • http://camel.apache.org/file2
 类似资料:
  • 我试图理解工作窃取对递归任务的影响:工作窃取的一个优点是,当前的工作线程/线程可能会执行自己的生成任务;增加数据局部性。但是,在常见情况下,当工作线程加入其生成的任务时会发生什么?例如: 我认为这里当前线程会被阻塞,因此无法从自己的队列中获取工作,因此另一个工作人员将不得不窃取这些工作。这将否认工作窃取的局部优势。然而,根据维基百科(https://en.wikipedia.org/wiki/Wo

  • 使用此更新的代码,我得到以下错误:

  • 我正在尝试使用火花在S3文件中生成拼花文件,目的是稍后可以使用presto从拼花中查询。基本上,它看起来是这样的, <代码>Kafka- 我能够使用Spark在S3中生成拼花并且工作正常。现在,我正在查看presto,我想我发现它需要hive meta store才能从拼花中查询。即使拼花保存模式,我也无法让presto读取我的拼花文件。那么,这是否意味着在创建拼花文件时,火花作业还必须将元数据存

  • 问题内容: 我目前正在将SQL Server SQL语句转换为它们的ANSI泛型等效项,并且使用WITH语句来限制递归语句。 为了专注于此问题,我将简化如下的问题 如果我有两张桌子 报告单位 col1:密钥 col2:ParentReportingUnitKey 设施 col1:密钥 col2:ParentReportingUnitKey 此结构描述了直至设施的报告单位的层次结构,其中报告单位可以

  • 我试图找到最大的双倍数组,但困难的部分是,你必须把数组分成两个切片,但在那之后,你需要计算2个子切片的最大值,并返回2个值中的最大值,这需要使用递归。 你能给我一个如何开始的建议吗。

  • 嗨,我在理解为什么我的递归逻辑返回第一个输入时有一些问题,尽管它似乎没有通过验证检查。Java中的一个简单例子: 我的理解是,函数要调用自己,直到满足条件,返回一个0到9之间的数。条件检查似乎是可行的,但是无论第一个数字是什么,总是被返回。一个执行示例产生: