gpt4 book ai didi

c# - Azure Functions RunOnStartUp 在配置中设置而不是在编译时设置?

转载 作者:行者123 更新时间:2023-12-02 23:06:18 27 4
gpt4 key购买 nike

我有一个 Azure 计时器触发函数,计划在生产中每 3 个月运行一次。但是在测试环境中,我希望它在每次触发时都在启动时运行。

目前我有:

[TimerTrigger("%TimerInterval%", RunOnStartup = false)]

我真的不想将 RunonStartup 更改为 true,但想知道是否有办法在配置中进行设置?

是否可以做这样的事情:

RunOnStartup = "%RunOnStartUpBool%" 并在 appsettings 中进行设置?

最佳答案

更新 2022 年 3 月 30 日:我之前的回答是更新您的代码以使用 #IF Debug 预处理器指令作为切换到 RunOnStartup=true 的方式> 方法参数。从 2022 年开始,您可以绕过这个笨拙的解决方法,只需在 VS Code Azure Functions 扩展中选择一个选项即可!这似乎不那么复杂。更多信息here .

enter image description here

另一种选择是登录 Azure 门户,导航到函数应用并使用函数的“测试/运行”选项卡。

旧答案:有一个很好的问题,对同一问题有多个答案 here .
我的测试环境通常是我本地的环境。因此,如果我们想编写仅在本地环境中运行而不是在生产中运行的代码,我们可以使用 preprocessor directive位于方法签名的中间,仅在处于 Debug模式时设置 RunOnStartup=true

    public static void Run([TimerTrigger("%TimerInterval%" 

#if DEBUG
,RunOnStartup=true // When debugging... run the job as soon as we press debug, no need to wait for the timer.
#endif

)]TimerInfo myTimer)

{

说明:在本地开发(调试)期间,#if DEBUG block 被激活。它启用 RunOnStartup=true 参数。在生产环境(而非调试)中,#if DEBUG block 被隐藏。

显然不是最漂亮的代码。但比其他选择要好得多......例如在开发期间必须等待计时器触发间隔。

关于c# - Azure Functions RunOnStartUp 在配置中设置而不是在编译时设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63719828/

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