CloudHub 上的 SalesForce Mule 连接器 v10.13.0 多次订阅事件
我在 CloudHub 平台上实现了一个 API,在 Mule 应用程序中部署在 Mule 4.3.0 运行时的 2 个 Workers 上。这个 Mule 应用程序正在使用 subscribe-channel-listener 监听 Salesforce 事件,并且在 Studio 中,我已使其仅在主节点上运行。
<salesforce:sfdc-config
name="Salesforce_Config"
doc:name="Salesforce Config"
doc:id="55f5d9c0-0fa3-4e14-a8fe-6cc6a2c3a09b" >
<salesforce:oauth-user-pass-connection
username="${secure::sf.username}"
password="${secure::sf.password}"
securityToken="${secure::sf.token}"
consumerKey="${secure::sf.consumerKey}"
consumerSecret="${secure::sf.consumerSecret}"
tokenEndpoint="${secure::sf.tokenEndpoint}"/>
</salesforce:sfdc-config>
<salesforce:subscribe-channel-listener
doc:name="Subscribe channel listener"
doc:id="e0f47684-d458-46c9-b7c7-13399ca5af39"
config-ref="Salesforce_Config"
streamingChannel="${sf.streamingChannel}">
<reconnect />
</salesforce:subscribe-channel-listener>
问题:我们检测到此 Mule Salesforce 连接器在每个工作人员上订阅该事件 2 次。这种情况不止发生一次,几分钟后我们再次尝试,并且再次在每个工人身上重复了偶数。
由于我们在 CloudHub 上运行 API,请问有人可以建议我一个更好的解决方案,这样我们就不会重复订阅的事件吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我也遇到过同样的问题,并向 Mulesoft 支持部门提出了支持请求,他们向我建议,对于销售人员活动,始终使用一名员工。
我的应用程序也在 CloudHub 上。
更多信息在这里(此链接由支持团队提供给我) - https://docs.mulesoft.com/salesforce-connector/10.14/salesforce-connector-processing-events
明确提到“如果您在 CloudHub 中运行应用程序时使用多个工作人员,所有工作人员都会接收并处理事件。”
I had faced the same issues and raised the support ticket with Mulesoft Support, and they suggested to me that for salesforce events, always use a single worker.
My application was also on CloudHub.
more inofrmation is here (this link is given by support team to me) - https://docs.mulesoft.com/salesforce-connector/10.14/salesforce-connector-processing-events
there is clearly mentioned that "If you use multiple workers when running the app in CloudHub, all of the workers receive and process the events."
如果问题是两个工作人员都订阅了该事件,那么这应该是可以预料到的。 Studio 可以配置为执行模拟单节点集群,但是 CloudHub 不会部署到集群,而是部署到多个独立节点(工作节点)。因此CloudHub中没有主节点,所有节点都是平等的。正如 Anurag Sharma 提到的,解决方案是部署到单个节点。
如果您需要完整的解释,MuleSoft 帮助中心有一篇知识库文章(我在写完上述答案后找到的):https://help.mulesoft.com/s/article/Why-Salesforce-Connector-set-primary-node-for-replay-channel-does-not-work-on-Cloudhub
If the issue is that the event is being subscribed in both workers, then that should be expected. Studio can be configured to execute simulating a single node cluster, however CloudHub doesn't deploy to a cluster, but to multiple independent nodes (workers). Hence there is no primary node in CloudHub, all nodes are equal. The solution is to deploy to a single node as Anurag Sharma mentioned.
If you need a full explanation there is a KB article (which I found after writing above answer) in MuleSoft Help Center: https://help.mulesoft.com/s/article/Why-Salesforce-Connector-set-primary-node-for-replay-channel-does-not-work-on-Cloudhub