如何以编程方式扩展应用程序引擎?
How to programmatically scale up app engine?
我有一个使用 App Engine Auto Scaling 的应用程序。它通常 运行s 0 个实例,除非某些授权用户使用它。
此应用程序需要 运行 以尽可能快的速度对数千人进行键盘交互的自动语音呼叫(不,这不是垃圾邮件,它是 redcall!)。
从编程上讲,我们要求 Twilio 通过其语音初始化呼叫 API 5 times/sec 它基本上通过 webhook 工作,至少 2 个,但大多数情况下每个呼叫有 4 个点击。所以 GAE 需要非常快速地扩展,一些请求在触发器开始时丢失(这只是用户端的挂断),当时只有一个实例准备就绪。
我想知道是否可以在 运行 触发此类触发器之前以编程方式扩展 App Engine(通过 an API?),以便在风暴爆发时做好准备?
我想你可能想 warmup requests 试一试。当他们在任何实时请求到达该实例之前将您的应用程序代码加载到新实例中时。因此,当您的 GAE 实例缩小到零时,减少了回答所需的时间。
我与您分享的 link,包括 PHP7 运行时,我看您很熟悉。
我也同意 John Hanley 的观点,因为在可用的空闲实例数量上找到最佳平衡点也有助于提高应用程序的性能。
最后,解决方案是通过 Cloud Tasks 委托发送通信:
https://cloud.google.com/tasks/docs/creating-appengine-tasks
https://github.com/redcall-io/app/blob/master/symfony/src/Communication/Processor/QueueProcessor.php
任务可以在出现错误时再次尝试访问应用引擎,并在激增时使应用引擎弹出新实例。
我有一个使用 App Engine Auto Scaling 的应用程序。它通常 运行s 0 个实例,除非某些授权用户使用它。
此应用程序需要 运行 以尽可能快的速度对数千人进行键盘交互的自动语音呼叫(不,这不是垃圾邮件,它是 redcall!)。
从编程上讲,我们要求 Twilio 通过其语音初始化呼叫 API 5 times/sec 它基本上通过 webhook 工作,至少 2 个,但大多数情况下每个呼叫有 4 个点击。所以 GAE 需要非常快速地扩展,一些请求在触发器开始时丢失(这只是用户端的挂断),当时只有一个实例准备就绪。
我想知道是否可以在 运行 触发此类触发器之前以编程方式扩展 App Engine(通过 an API?),以便在风暴爆发时做好准备?
我想你可能想 warmup requests 试一试。当他们在任何实时请求到达该实例之前将您的应用程序代码加载到新实例中时。因此,当您的 GAE 实例缩小到零时,减少了回答所需的时间。
我与您分享的 link,包括 PHP7 运行时,我看您很熟悉。
我也同意 John Hanley 的观点,因为在可用的空闲实例数量上找到最佳平衡点也有助于提高应用程序的性能。
最后,解决方案是通过 Cloud Tasks 委托发送通信:
https://cloud.google.com/tasks/docs/creating-appengine-tasks
https://github.com/redcall-io/app/blob/master/symfony/src/Communication/Processor/QueueProcessor.php
任务可以在出现错误时再次尝试访问应用引擎,并在激增时使应用引擎弹出新实例。