我想在每60秒后重复运行代理(传递)或序列(传递类型),所以我开始使用任务计划程序,但我无法弄清楚如何使用任务计划程序实现我的要求。 我想在每60秒后执行我的代理或序列。在wso2 BPS中我们可以使用循环来实现这一点,同样在esb中可以安排在某段时间后运行代理或序列?期待您的回答。 提前谢谢。
是否有可能在wso2 esb中达到上述要求。请帮助。
答案 0 :(得分:5)
您可以使用该任务运行在ESB中配置的代理服务。您需要按如下方式配置任务。
以下是访问ESB随附的SimpleStockQuoteService示例服务的示例配置。您可以替换“to”属性的值以匹配您的代理端点并设置所需的消息。
<task class="org.apache.synapse.startup.tasks.MessageInjector" name="CheckPrice">
<property name="to" value="http://localhost:9000/services/SimpleStockQuoteService"/>
<property name="soapAction" value="urn:getQuote"/>
<property name="message">
<m0:getQuote xmlns:m0="http://services.samples">
<m0:request>
<m0:symbol>IBM</m0:symbol>
</m0:request>
</m0:getQuote>
</property>
<trigger interval="5"/>
</task>
答案 1 :(得分:0)
表单WSO2 ESB版本4.7.0将新属性添加到任务组件。使用那些我们可以从我们的任务调度程序调用代理服务或序列。以下是我调用代理服务的示例代码
<task name="DBPOller"
class="org.apache.synapse.startup.tasks.MessageInjector"
group="synapse.simple.quartz">
<trigger count="2" interval="5"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="soapAction"
value="urn:getRequestForm"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks" name="message">
<p:getRequestForm xmlns:p="http://ws.wso2.org/dataservice"><!--Exactly 1 occurrence--><p:isRead>n</p:isRead>
</p:getRequestForm>
</property>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="injectTo"
value="proxy"/>
<property xmlns:task="http://www.wso2.org/products/wso2commons/tasks"
name="proxyName"
value="DBPollerService"/>
</task>