如何在google云函数中强制冷启动?

von4xj4u  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(247)

我正在从请求代码之前的文件初始化全局变量:

global_variable = open('file.txt').read()

def function(request):
    pass

更新此文件时,我希望强制冷启动,以便加载新文件。有办法做到这一点吗?

6uxekuva

6uxekuva1#

开发人员无法直接控制冷启动何时发生。从你的问题来看,听起来你可能误解了云的功能是如何工作的。
每个部署的函数将分配0个或多个服务器示例,以便它能够处理传入的流量。流量在这些运行的示例中被分割。每次分配一个新的服务器示例来处理增加的负载时,这将导致该新示例的冷启动。该冷启动不会影响可能已经在运行的其他示例。假设有任意数量的服务器示例随时间推移而来,则给定函数不存在“全局状态”。函数应设计为无状态。
也就是说,您可以通过在示例运行的代码中抛出异常来使示例“消失”。因此,您可以发出一个请求,强制函数崩溃。但您无法控制请求将路由到哪个服务器示例。因此,您可以尝试通过交付多个请求(您认为当前可能正在运行的每个服务器示例对应一个请求)来杀死所有正在运行的示例,但这样做的方法并不简单、可靠。
如果您需要让您的服务器示例将某些内容重新加载到内存中,那么它们必须定期执行一些代码来检查是否有更新。这是唯一可靠的方法。

相关问题