我可以存储webjob定时器调度在appsetting.json的子对象?



如果cron字符串存储在appsetting的根目录。Json文件,读取它们没有问题。但是,如果我在appsetting.json中这样做:

"EETHistoryJobSettings": {
"SomeSetting": {
"Name": "A"
},
"Schedule": "*/15 * * * * *"
}

并希望定时器从EETHistoryJobSettings json对象中读取,它不工作(基本上找不到EETHistoryJobSetting.Schedule)。

public async Task Run([TimerTrigger("%EETHistoryJobSetting.Schedule%", RunOnStartup = true)] TimerInfo timerInfo, ILogger logger,

只是想知道是否有一种方法可以在子对象中指定Cron时间或必须在根节点上?

AFAIK, Azure函数定时器触发MS文档给出了CRON表达式变量应该包装在%中符号。

案例1:

如果您的appsettings.json包含local.settings.json形式的代码设置:

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "<Storage_Conn_String>",
"CronExpression":"*/15 * * * * *"
}
}

则功能码为:

public async Task Run([TimerTrigger("%CronExpression%", RunOnStartup = true)] TimerInfo timerInfo, ILogger logger

案例2:

appsettings.json:

{
"ScheudleInfo":{
"TimerTrigger1":{
"CronExpression":"*/15 * * * * *"
}
}
}

则功能码为:

public async Task Run([TimerTrigger("%ScheudleInfo:TimerTrigger1:CronExpression%", RunOnStartup = true)] TimerInfo timerInfo, ILogger logger

注意:使用Azure函数类时,存储帐户连接字符串、环境变量应在local.settings.json中定义。

最新更新