我担心如何实现一个计数器,当调用flow时它将增加1步。例如: 我有一个名为http://localhost:8080/doSomething的流和一个变量计数器。 当我在doSomething服务中输入
时,计数器变量将增加1非常感谢
答案 0 :(得分:0)
您需要持久存储解决方案。 Mule中的变量并不存在于调用中。 Mule有一个Object Stores的概念:https://docs.mulesoft.com/mule-user-guide/v/3.7/mule-object-stores
如果您是Mule Enterprise客户,则可能会在您的订阅中包含分析。
答案 1 :(得分:0)
如果需要存储整个应用程序中可用的运行时数据,则可以将数据作为对象存储在注册表中。 这是一个例子
设置值
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy">
<![CDATA[muleContext.getRegistry().registerObject("Count", new Integer(14))]]>
</scripting:script>
</scripting:component>
读取值
<logger message="Count #[app.registry.get('Count')]" level="INFO" doc:name="Logger"/>
答案 2 :(得分:0)
如果您只是想收集统计信息,那么我建议您考虑使用MuleSoft Insight。您可以在流程中设置自定义商务活动并跟踪重要信息。最后,您可以使用CloudHub上的 Insight Dashboard ,通过应用各种过滤器来获取相应的统计信息。
答案 3 :(得分:0)
您可以在流程中拥有对象存储,它可以在内存或持久存储中存储您的计数器(流量的点击次数)。然后,您可以检索计数器并在随后点击流量时增加计数器。 https://docs.mulesoft.com/mule-user-guide/v/3.9/object-store-module-reference
答案 4 :(得分:0)
在流的开头,在Mule应用程序注册表中初始化一个整数值为1的变量,如下所示:
<expression-component doc:name="Expression"><![CDATA[#[app.registry.put('counter',1)]]]></expression-component>
要增加值,请使用:
<expression-component doc:name="Expression"><![CDATA[#[app.registry.put('counter',app.registry['counter']+1)]]]></expression-component>
要获取计数器标志的最终值,请使用表达式:
#[app.registry.get('counter')]