【问题标题】:How to stop/start the Mule flows in multiple applications using Groovy scripting如何使用 Groovy 脚本在多个应用程序中停止/启动 Mule 流
【发布时间】:2017-07-25 02:00:08
【问题描述】:

是否可以停止/启动在同一个 mule 运行时中部署的多个应用程序中运行的流?

看起来我们需要为每个应用程序分别编写 Groovy 脚本才能停止/启动。有人可以帮我理解吗?

代码sn-p:-

  <scripting:component>
     <scripting:script engine="groovy">
        muleContext.registry.lookupFlowConstruct('targetFlow').start()
     </scripting:script>
  </scripting:component>

【问题讨论】:

    标签: groovy mule mule-studio mule-component


    【解决方案1】:

    这里是描述:

    muleContext.registry.lookupFlowConstruct(<flowname>).start()
    

    如果进程处于停止状态,这是启动流的 groovy 脚本。'targetFlow' 是您要启动的流的名称。这是检查进程停止或启动情况的好习惯。

    如果您想停止流程,可以使用以下代码。这将停止指定的进程。

    if(muleContext.registry.lookupFlowConstruct(<flowname>).isStarted())
    {
    muleContext.registry.lookupFlowConstruct(<flowname>).stop();
    }
    else
    {
    flowVars.status='Process already in stopped condition';
    }
    

    【讨论】:

    • 我能够毫无问题地启动/启动流程,但问题是我只能在应用程序中执行此操作,即我的流程和 groovy 脚本应该在同一个项目中可用。是否可以在 1 个 mule 应用程序中使用 Groovy 脚本并尝试控制在 mule 其他应用程序中可用的流程?
    • @Sstest 我不这么认为。它会破坏运行时提供的封装。我认为您必须在一个应用程序中提供一个 API(例如 HTTP)并从另一个应用程序调用它。
    • @Sstest 创建一个单独的 API 来启动和停止在相同或不同 JVM Box 中运行的 mule 流!
    • @Vijay,即使我在同一个 JVM 中尝试从单独的应用程序,但它仍然不起作用。正如 Yevgeniy 所说,MuleContext 每个应用程序都是唯一的,它无法从现有的 muleContext 访问其他 muleContext。下面我提到了我得到的错误堆栈:- Root Exception stack trace: java.lang.NullPointerException: Cannot invoke method stop() on null object
    • @Sstest 在这种情况下,您需要从不同的 API 持久化一个标志以在数据库或注册表中启动和停止。您可以使用数据库条目(如应用程序名称/标志)来启动或停止。基于此,您可以阅读标志,然后继续启动或停止。
    【解决方案2】:

    我们可以通过在应用程序中编写 groovy 脚本来启动/停止流,并且不能跨应用程序完成,因为它是在 MuleContext 基础上工作的。下面是更简单的方法。

     <scripting:component>
         <scripting:script engine="groovy">
            muleContext.registry.lookupFlowConstruct('targetFlow').start()
         </scripting:script>
     </scripting:component>
    

    【讨论】:

      【解决方案3】:

      它可以跨应用程序完成,不久前写了一篇关于此的博文。

      它使用相同的命令,然后放入应用程序并通过 HTTP 公开。

      http://www.corralict.nl/how-to-start-stop-mule-flows-from-a-client-over-http/

      【讨论】:

        猜你喜欢
        • 2016-08-04
        • 2013-03-01
        • 1970-01-01
        • 2014-10-23
        • 1970-01-01
        • 2016-05-25
        • 2017-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多