我想每 60 秒后重复运行代理(通过)或序列(通过类型),所以我从任务计划程序开始,但我无法弄清楚如何使用任务计划程序实现我的要求。我想每 60 秒后执行一次代理或序列。就像在 wso2 BPS 中,我们可以使用循环来实现这一点,同样,esb 中是否有任何东西可以安排在一定时间间隔后运行代理或序列?期待您的回答。提前致谢。
是否有可能在 wso2 esb 中实现上述要求。请帮忙。
您可以使用该任务来运行在您的 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>
表单 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>