如何在mule项目

时间:2015-08-24 13:49:23

标签: mule jira cloudhub

我正在尝试通过cloudhub应用程序将JIRA与Salesforce集成。我创建了一个mule软项目(每次在JIRA中更新或创建工作日志时调用)并将其部署在cloudhub中。从Jira我使用web hook实例,它在云集线器中调用mule项目。我面临的问题是当从JIRA到cloudhub应用程序同时调用时,项目流中的java类通过JIRA的并行调用同时执行,变量被覆盖并产生冲突。如何在mule项目中一次处理一个HTTP请求?

1 个答案:

答案 0 :(得分:0)

您的问题意味着您正在使用自定义Java类来转换JIRA数据,以便将其发送到Salesforce,并且它具有静态变量或其他非线程安全的共享状态。

要解决并发问题,请尝试实现您的流,以便它不需要是单线程的:

  1. 首先,如果可以,使用内置的Mule消息处理器和Mule表达式语言实现转换逻辑。如果您使用的是3.7+,我建议您使用DataWeave进行尝试。这些是隐式线程安全的。

  2. 如果您实现了自定义java,请尝试消除共享状态的使用。这可以是静态变量的形式,如果你使用带有Singleton scope的弹簧bean(这是默认值),它可能会发生在实例变量中。

  3. 如果您需要在自定义Java消息处理器中使用共享状态,请使用Mule Object Store来存储状态而不是java实例变量或静态变量。有connector允许您直接从流中添加和检索对象库中的数据。