gpt4 book ai didi

c# - 使用 Azure WebJobs 调用静态方法

转载 作者:行者123 更新时间:2023-12-03 05:57:39 25 4
gpt4 key购买 nike

我创建了一个由静态类组成的 dll。我在 Azure 中创建和部署的 Web 作业(webjob1、webjob2 等)中引用了它们。

每个网络作业可以同时访问一个方法。由于我们使用静态类,它将在堆中创建单个内存。每个网络作业都包含该静态类的引用值。我的问题是,它会产生任何问题吗?

根据我的理解,C# 以同步方式工作。因此,每个网络作业都会在队列中等待访问静态类的函数。因此对该静态类的变量所做的任何更改都会反射(reflect)在其他 webjobs 上。因为静态类具有独立的内存。

如果我的假设是正确的,为什么我们应该保留这样的静态辅助类而不是我们可以实例化和使用它的普通辅助类。

我正在创建这样的静态类,以便从我的数据库中获取一些详细信息。

public static class StaticHelper
{
public static string GetValue()
{
using(IDBContext _DbContext = new sampleDBContext())
{

}

//Acessing values through this context
}
}

最佳答案

如果我理解正确的话,您有多个对 dll 具有相同依赖关系的 Web 作业。您有该网站的多个实例,并且使用 SDK,但不使用队列触发器。

每个网络作业将作为其自己的进程运行,并且网站的每个实例可能有这些网络作业的其他实例(取决于您是否设置了单个实例或多个实例)。

“每个网络作业可以同时访问一个方法” - 是的,但它们将位于不同的进程中,因此在这种情况下您将是安全的。

如果这回答了您的问题,那么更多细节实际上是学习 .net 和多个进程如何处理静态逻辑(并非真正特定于 webjobs)。我将从 Jeffry Richter 开始了解这个细节。

关于c# - 使用 Azure WebJobs 调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38069474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com