。net核心Web作业中如何从appsettings.json中读取Cron表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了。net核心Web作业中如何从appsettings.json中读取Cron表达式相关的知识,希望对你有一定的参考价值。
我已经开发了.Net Core 2.2 Azure Web Job项目,该项目具有多个计时器触发功能。每15分钟运行一项功能,每10分钟运行另一项功能。
public async Task GetRecordsFromCosmosDBCollection_0([TimerTrigger("0 0/15 * * * *")]TimerInfo timerInfo){
//Custom Business Logic
}
public async Task GetRecordsFromCosmosDBCollection_1([TimerTrigger("0 0/10 * * * *")]TimerInfo timerInfo){
//Custom Business Logic
}
如果我直接在函数参数中使用CRON表达式,则它将按预期工作。但是我想从appsettings.json文件中读取CRON表达式信息,然后将其传递给上述两个函数。
因此,任何人都可以建议从Azure WebJob项目的Functions.cs文件中的appsettings.json读取CRON表达式信息的正确方法。
我认为这样做的目的是使时间表脱离已编译的代码,而无需重新编译和重新部署就可以对其进行更改。
这可能不是最优雅的解决方案-但您可以将两个函数放入两个不同的预定WebJob中。然后,您可以为每个设置一个单独的settings.job。
https://docs.microsoft.com/en-us/azure/app-service/webjobs-create#CreateScheduledCRON
[外部settings.job文件被部署到WebJob exe所在的文件夹-通常为D: home site wwwroot App_Data jobs triggered WebJobName-您可以在此处更改计划。
要有不同的时间表-您必须分成不同的WebJob,因为settings.job时间表从Main开始,而不是像[TimerTrigger]之类的特定功能。
在预定的作业中,Main中的代码如下:
await host.StartAsync();
await jobHost.CallAsync("ManualTrigger", inputs);
await host.StopAsync();
其中“ ManualTrigger”是Functions.cs中的函数。 settings.jobs中的日程安排从Main开始,运行该功能,然后关闭。
以上是关于。net核心Web作业中如何从appsettings.json中读取Cron表达式的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ASP.NET 在 web.config 文件中写入 appSetting?
如何使用 .NET Core 根据发布配置文件更新 appsettings.json?
从 .net 标准库中读取 appsettings.json
从appsettings.json向.net核心控制台应用程序添加多个终结点路由
如何将 asp.net 实体框架 connectionStrings 移动到 web.config 的 appSettings 部分