如何在mule项目中使http请求排队
我正试图通过cloudhub应用程序将JIRA与Salesforce集成。我创建了一个mule软件项目(每次在JIRA中更新或创建工作日志时都会调用该项目),并将其部署在cloudhub中。从Jira开始,我正在使用WebHook实例,它在CloudHub中调用mule项目。我面临的问题是,当JIRA同时调用cloudhub应用程序时,项目流中的java类被JIRA的并行调用同时执行,变量被覆盖并产生冲突。如何在mule项目中一次处理一个HTTP请求?要在HTTP侦听器上设置线程,请使用:如何在mule项目中使http请求排队,mule,jira,cloudhub,Mule,Jira,Cloudhub,我正试图通过cloudhub应用程序将JIRA与Salesforce集成。我创建了一个mule软件项目(每次在JIRA中更新或创建工作日志时都会调用该项目),并将其部署在cloudhub中。从Jira开始,我正在使用WebHook实例,它在CloudHub中调用mule项目。我面临的问题是,当JIRA同时调用cloudhub应用程序时,项目流中的java类被JIRA的并行调用同时执行,变量被覆盖并产生冲突。如何在mule项目中一次处理一个HTTP请求?要在HTTP侦听器上设置线程,请使用: &l
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration">
<http:worker-threading-profile maxThreadsActive="1" />
</http:listener-config>
您的问题向我暗示,您正在使用自定义java类来转换JIRA数据,以便将其发送给Salesforce,并且它具有静态变量或一些其他非线程安全的共享状态 要解决并发问题,请尝试实现流,使其不必是单线程的:
就性能而言,我认为您应该修复变量访问冲突,因为强制请求一次处理一个会影响性能。据我所知,您似乎在使用一个全局共享变量(可能通过静态变量或单例对象)。简单地创建非静态变量或原型对象应该可以避免这个问题。。在任何情况下,将其更新为一个线程都是最简单的修复方法(使用下面的Gabriel解决方案),根据,您仍然需要指定要等待的操作。否则,它就不会有效果。同意,我错过了这个。