最小化Salesforce Streaming API和Heroku Connect之间的延迟

我目前有一个在Heroku中运行的应用程序(node.js),使用Heroku Connect连接到Salesforce来读取/写入数据。

Heroku Connect基本上有一个Salesforce选定数据的副本,通过Streaming API提取。

我的应用程序立即写入HC PostgreSQL数据库,立即写入Salesforce。

这增加了一个独特的参考字段,也是Salesforce中即时生成的,但是这个信息被延迟反馈给Heroku Connect。

我不确定延迟是因为streamAPI还是Heroku Connect,但我不确定如何最小化/删除这个延迟,以便Heroku Connect立即使用新生成的字段进行更新。

请看下面的图表,显示什么是即时和延迟发生的地方:

图

我认为,这种延迟的原因可能是套接字和重新连接超时( 在这里阅读更多关于Streaming API超时)。 如果您的解决scheme的Salesforce端不常发生事件,则客户端可能会丢失连接,并且每次都需要重新连接,并且可能会浪费您观察的时间。 可能的解决scheme是在Salesforce端(没有真实数据)生成假事件来保持活动连接,但是您需要关心另一个Streaming API限制(例如,24小时内的事件数量)。 有关限制的更多详细信息,请参阅Salesforce文档 。

这只是一个想法,您需要做一些基准testing并收集一些统计数据,以便更好地了解Salesforce和Heroku Connect如何与您的案例进行交互。

Salesforce中的出站stream是asynchronous的…这意味着延迟是正常的。 请阅读“ 集成模式和实践 ”了解更多详情。 我不确定他们描述的哪一种策略适合您的需求,但至less您有一个参考。 希望能帮助到你。