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