gpt4 book ai didi

c# - 仅在特定时间运行一次 azure 函数?

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

所以我正在努力发送移动应用程序推送通知,我已经设置了 Azure 通知中心,但我想在其中进行调度,我知道在 Azure 中有一个选项可以做到这一点,因为它需要花费200 美元我决定创建 Azure Functions 来处理它,

我已经了解了 NCRON 表达式,现在我想知道如何安排一个作业在特定日期运行一次,我所能找到的只是基于重复的作业,而且是否可以动态运行一个作业,如日期会有所不同

 public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 0 15 2 Jan")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}

我试图做这样的事情,在 1 月 2 日的 15:00Hrs 运行一些东西,它似乎不起作用,我在这里遗漏了什么以及如何使 TimerTrigger 动态?

最佳答案

为了描述清楚,我重新编辑了整个答案。希望这次我能解释清楚。

好的。首先,您需要知道,azure Function 有一个声明部分和一个配置部分。

在本地,声明部分是([TimerTrigger("* * * * * *")]TimerInfo myTimer, ILogger log),配置部分是local.settings。 json 文件。

当您部署到 Azure 时。它改变。声明部分变为function.jsonApplication Settings变为配置部分。

根据您的要求,您可以在配置部分添加一个键并在您的函数中获取它。

例如,

在本地:

函数.cs:

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace TimeTrigger
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("%Schedule%")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
}

local.settings.json:

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"Schedule": "* * * * * *"
}
}

可以通过改变json中key的值来改变timetrigger的触发方式。(比如使用powershell修改值,也可以使用代码修改。)


在门户网站上:

与在本地类似,您可以在门户网站上执行此操作:

声明部分:

enter image description here

配置部分:

enter image description here

enter image description here

关于c# - 仅在特定时间运行一次 azure 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59561949/

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