c# - 计划的 .NET WebJob V3 示例
问题描述
我已将我的 .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 更新和这个例子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
and测试Microsoft.Azure.WebJobs.Extensions -version 3.0.1
,我认为你的 TimerTrigger 不起作用,因为你失去了调用AddTimers
扩展方法。您可以在此处找到描述:绑定类型。
我使用的其他包:
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
)来配置存储连接字符串。
结果如下:
推荐阅读
- python - 如何从 FFT 计算和绘制 csv 时间序列数据的频率
- c# - 在.Net 5的中间件中读取请求正文
- css - 如何使用 css 渲染这样的图像文本?
- mysql - 如何在laravel中的一个查询多个条件中执行计算
- android - 如何让 LibGDX 在 Chromebook 上全屏运行
- python - 打开文件对话框重复运行两次
- php - 当我为 get() 提供参数时,with() 返回 null
- amazon-web-services - 基于响应时间的 AWS Scale Up ECS 服务
- r - 如何在R中将度数转换为余弦
- reactjs - Where is the AccountController in a dotnetcore React web app?