c# - azure 函数是否在运行的实例之间共享上下文?

标签 c# azure-functions azure-functions-runtime

我正在开发一个基于 Azure Functions 的项目,我有一个带缓冲区的静态帮助程序类(私有(private)静态 ConcurrentDictionary),它包含一些要在执行结束时处理的项目列表,问题是这个缓冲区将在多个运行实例之间共享?

最佳答案

视情况而定。

最常见的是,函数的多次执行将在同一个实例上运行。意味着相同的 .NET 进程和应用程序域,因此它们将共享您的静态字典。

如果您的 Function App 收到太多请求无法在单个实例上处理,则会创建第二个实例,并且它不会与第一个实例共享任何内容。因此,在这种情况下,您将有 2 个(如果需要,还有 3 个、4 个、N 个)字典。

这些实例中的任何一个也可能随时消失,因此您无法在执行之间可靠地在字典中存储任何内容。您可以“尽最大努力”做到这一点,例如缓存数据。

关于c# - azure 函数是否在运行的实例之间共享上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50272979/

相关文章:

Azure 函数运行时无法启动

c# - 在 ControlTemplate 中设置按钮图像

dependency-injection - Azure 函数 V3 无法使用 EF 核心 5.0-rc1 加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions,版本 = 5.0.0.0

c# - 属性 'DurableClientAttribute' 是一个 WebJobs 属性,.NET Worker(隔离进程)不支持该属性

Azure Function 运行两次

azure - 图形 token 没有范围,同时尝试让 Azure 函数与 Excel 输出一起使用

c# - 使用 .net 生成代码

c# - C# 中如何表示不安全指针

c# - 简单的注入(inject)器 - 导致容器不被垃圾收集的装饰器?

azure - 我们可以使用本地 SQL Server 作为 AzureWebJobsStorage 来运行容器化的 Azure Functions 吗?