为什么更新几个Twilio IPM通道的消费范围失败?

时间:2016-02-18 23:29:12

标签: javascript twilio

我的webapp中有几个开放的Twilio IP消息传递通道。然后我尝试按顺序使用updateLastConsumedMessageIndex更新几个开放渠道的消费范围。我通过处理updateLastConsumedMessageIndex来处理.then返回的Promise,并且then处理程序中的通道数据表明请求未得到满足,因为channel的lastConsumedMessageIndex仍然是旧的。

可以通过递归调用updateLastConsumedMessageIndex来解决此问题,直到消费范围更新为止。 示例代码:

function updateChannelConsumptionHorizon (channel) {
  let lastMessageIndex = channel.messages[channel.messages.length - 1].index
  channel.updateLastConsumedMessageIndex(lastMessageIndex).then(channel => {
    if (channel.lastConsumedMessageIndex !== lastMessageIndex) {
      setTimeout(() => {
        updateChannelConsumptionHorizon(channel)
      }, 100)
    }
  })
}

有趣的是,第一次呼叫updateChannelConsumptionHorizon不需要多次尝试,而后续呼叫最多可以尝试60次更新消费范围。

1 个答案:

答案 0 :(得分:1)

Twilio限制对消费范围的更新,默认情况下每10秒发送一次。使用REST API更新consumption_report_interval