如何在wso2 esb中的任务调度程序中调用序列

时间:2013-06-17 06:13:40

标签: wso2 wso2esb

我想在每60秒后重复运行代理(传递)或序列(传递类型),所以我开始使用任务计划程序,但我无法弄清楚如何使用任务计划程序实现我的要求。 我想在每60秒后执行我的代理或序列。在wso2 BPS中我们可以使用循环来实现这一点,同样在esb中可以安排在某段时间后运行代理或序列?期待您的回答。 提前谢谢。

是否有可能在wso2 esb中达到上述要求。请帮助。

2 个答案:

答案 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>