后记:奇怪的黑客行为
,但是由于我们故意在有限的预算下完成这项工作,因此我们遇到了一些奇怪的问题 - 主要是在我们的机器人有一段时间没有被激活时对其发出的请求。
当 Twilio 一段时间内第一次收到消息时 加拿大电话数据 它会很快启动,并期望其他东西也能这样做。例如,当 Twilio 向我们的代码发出请求时,如果请求时间超过五秒钟,它会假定代码失败。这并不罕见——许多聊天平台都要求最大周转时间为五秒钟。
即使在内存容量较低的情况下,Cloud Functions 也能运行得相当快,但通过 API 访问 Google Sheets 时似乎总是有点慢。事实上,如果一段时间没有访问 Google Sheets,它的运行速度会特别慢。
这可能意味着,如果最近没有人使用您的机器人,Google Sheets API 第一次响应的时间会太长,并且 Twilio 在我们的代码返回之前放弃,从而导致错误。
我们的脚本有几个部分的设计就是为了避免这种情况。
再次尝试
第一次激活 Cloud Function 时,我们并不想让它真正改变任何东西,我们只是想要信息。因此,在 Twilio 中,我们首先创建一个名为“retries”的变量,并将其值设置为 0。
如果请求失败,我们会检查重试次数值是否为 0。如果是,我们将重试次数值设置为 1 并重试。如果第二次失败,我们不想一直这样做,所以我们会发送错误并停止。
这部分实际上只针对感兴趣的人
-
- Posts: 189
- Joined: Tue Dec 24, 2024 4:59 am