gpt4 book ai didi

c# - Azure WebJob 最佳方法

转载 作者:太空狗 更新时间:2023-10-29 23:13:34 26 4
gpt4 key购买 nike

这是我第一次完成 WebJob 类型的应用程序。我创建了一个 webjob 项目,在解决方案中它附带了 Program.csFunction.cs

我已经删除了 Function.cs 因为在这个项目中没有我将从中获取数据的队列。

现在在Program.cs中已经有Main方法如下:

class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}

据我了解,RunAndBlock 是连续运行 webjob,但我希望该作业仅运行一次。我想通过时间表从外部控制执行。我想知道如何让我的代码只运行一次?如下所示,我有一个 SupportService 类,其中包含 RunOnePoolProvisioingCycle,我只想调用此方法一次。这是正确的方法吗?

static void Main()
{
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
_supportService.RunOnePoolProvisioningCycle();
}

还是这个?

static void Main()
{
var host = new JobHost();
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
host.Call(typeof(SupportService).GetMethod("SetPoolProvisioningConfigurations"));
}

还是这个?

static void Main()
{
var host = new JobHost();
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
host.CallAsync(typeof(SupportService).GetMethod("SetPoolProvisioningConfigurations"));
}

或者我应该使用:

host.Start()

host.StartAsync()?

最佳答案

您看到的是SDK的一部分,它是可选的。Webjob 可以像控制台应用程序一样简单,您可以按原样压缩、上传和运行。

所以这段代码似乎是您情况下的最佳选择:

static void Main()
{
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
_supportService.RunOnePoolProvisioningCycle();
}

关于c# - Azure WebJob 最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398073/

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