我正在开发一个批量 SMS 应用程序,它会在紧急情况下向一群人发送一条消息。我查看了Twilio Docs并实现了他们的代码,此时我从 API 收到 429 错误。所以我添加了指数退避代码来防止这种情况,但是当我运行脚本时,它只会发送到数组中列出的第二个数字。
const accountSid = '[ACCOUNT SID]';
const authToken = '[AUTH TOKEN]';
const client = require('twilio')(accountSid, authToken);
var numbersToMessage = ["+1800XXXXXXX", "+1888XXXXXXX"]
numbersToMessage.forEach(function(number){
var message = client.messages.create({
body: 'This is test #2 from August 21, 2020.',
from: '[TWILIO SENDER NUMBER]',
statusCallback: '[PIPEDREAM API URL]',
to: number
})
.then(message => console.log(message.status))
return((err) => {
// assumes that the error is "request made too soon"
backoffTime *= 2;
i--;
console.log(err);
return delay(backoffTime);
});
done();
});
指数退避对我来说是全新的,所以我相当肯定这就是问题所在,但就我所知。我也尝试过使用 npm 包指数退避,但没有任何运气。