【问题标题】:How to call sequence in Task Scheduler in wso2 esb如何在 wso2 esb 的任务计划程序中调用序列
【发布时间】:2013-10-18 15:18:13
【问题描述】:

我想在每 60 秒后重复运行代理(通过)或序列(通过类型),所以我开始使用任务计划程序,但我无法弄清楚如何使用任务计划程序实现我的要求。 我想每 60 秒后执行我的代理或序列。就像在 wso2 BPS 中我们可以使用循环来实现这件事一样,esb 中是否有任何东西可以安排在一定时间间隔后运行代理或序列?期待您的回答。 提前致谢。

是否有可能在 wso2 esb 中实现上述要求。请帮忙。

【问题讨论】:

    标签: wso2 wso2esb


    【解决方案1】:

    您可以使用该任务来运行在您的 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>
    

    【讨论】:

    • 我在axis2中托管的服务中有一个urn:UpdateCache操作。在此服务中,我从wso2 dss获取数据并将其放入缓存。所以我只想用操作名称调用这个服务,它没有任何输入请求
    • 那么你可以发送一个空的消息体。
    【解决方案2】:

    Form 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 2016-11-08
      • 2014-01-06
      • 2011-05-29
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      相关资源
      最近更新 更多