gpt4 book ai didi

c# - 计划的 .NET WebJob V3 示例

转载 作者:行者123 更新时间:2023-12-04 01:41:19 25 4
gpt4 key购买 nike

我已将我的 .NET(不是 .NET Core)WebJob 从 V2(工作正常)升级到 V3。我很难让它运行。我只是想让 webjob 调用我根据这个 CRON 计划编写的函数:“0 0 8,10,12,14,16,18,20 * * *”。它运行的网站也是 .NET,而不是 .NET Core。

我该怎么做呢?我只想要一个简单的 .NET 代码示例。我看过这个问题 New Azure WebJob Project - JobHostConfiguration/RunAndBlock missing after NuGet updates而这个例子 https://github.com/Azure/azure-webjobs-sdk/blob/00686a5ae3b31ca1c70b477c1ca828e4aa754340/sample/SampleHost/Program.cs和本文档 https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#triggers但没有一个是有帮助的。

最佳答案

实际上 .Net webjob 或 .Net Core webjob 的使用几乎相同,导致 3.0 sdk 针对 .NET 标准 2.0。我用 Microsoft.Azure.WebJobs -version 3.0.4 测试和 Microsoft.Azure.WebJobs.Extensions -version 3.0.1 ,我认为您的 TimerTrigger 不起作用,因为您丢失了调用 AddTimers扩展方法。您可以在此处找到说明:Binding types .

我使用的其他包:

Microsoft.Extensions.Logging -version 2.2.0
Microsoft.Extensions.Logging.Console -version 2.2.0

这是我的 main方法:
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Hosting;
namespace ConsoleApp20
{
class Program
{
static void Main(string[] args)
{
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddTimers();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();

});
var host = builder.Build();
using (host)
{
host.Run();
}
}
}
}

这是我的 Functions.cs :
public static void Run([TimerTrigger("0 0 8,10,12,14,16,18,20 * * *")]TimerInfo myTimer, ILogger log)
{

log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}

并使用 appsettings.json (不要忘记将 Copy to Output Directory 设置为 Copy always )来配置存储连接字符串。

结果如下:

enter image description here

关于c# - 计划的 .NET WebJob V3 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57264806/

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