2016-12-01 63 views
0

我創建了一個應該從OPC-UA端點讀取的路由。讀操作應該每秒執行一次,基於計時器。我發現的每個例子都顯示路線只能有一個from項目。我的路線是這樣的:如何創建基於計時器的駱駝輪詢路線?

<camelContext xmlns="http://camel.apache.org/schema/blueprint"> 
    <route id="opctorest"> 
    <from uri="timer://simpleTimer?period=1000"/> 
    <log message="Triggered Route: opctorest: Sensorreading body: ${body}"/> 
    <to uri="milo-client:tcp://0.0.0.0:4840/freeopcua/server?nodeId=2&amp;namespaceUri=http://examples.freeopcua.github.io"/>   
    <convertBodyTo type="java.lang.String"/>   
    <to uri="stream:out"/> 
    </route> 
</camelContext> 

當我部署的路線,它被稱爲每一秒,但它寫入到端點,因爲該呼叫在to元素聲明。我怎樣才能把它變成一個閱讀?到目前爲止我找不到解決方案。謝謝!

回答

0

使用.enrich()可以在要讀取路徑中間時將其變爲讀取。 http://camel.apache.org/content-enricher.html

類似,對於你的榜樣東西(未測試):

<camelContext xmlns="http://camel.apache.org/schema/blueprint"> 
    <route id="opctorest"> 
    <from uri="timer://simpleTimer?period=1000"/> 
    <log message="Triggered Route: opctorest: Sensorreading body: ${body}"/> 
    <enrich uri="milo-client:tcp://0.0.0.0:4840/freeopcua/server?nodeId=2&amp;namespaceUri=http://examples.freeopcua.github.io"/>   
    <convertBodyTo type="java.lang.String"/>   
    <to uri="stream:out"/> 
    </route> 
</camelContext> 
+0

順便說也有PollingEnrich這樣你就可以查詢端點和基於某些間隔讀取。也許這更適合你? –

+0

這樣做的技巧,謝謝:) – Fluffy