小编rip*_*ey_的帖子

在本地运行一次定时器触发的Azure功能的最简单方法是什么?

我有几个C#Azure函数使用计时器触发器按计划运行.我已经设置了它们,在%TimerSchedule%应用程序设置中指的是cron表达式:

public static void Run([TimerTrigger("%TimerSchedule%")]TimerInfo myTimer, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)

在开发过程中,我经常希望使用Azure功能工具为Visual Studio + Azure功能核心工具在本地运行这些功能.但是,当我按F5调试本地函数时,它(通常)不会立即运行.相反,它根据计时器计划开始等待下一次出现.因此,例如,如果我的cron表达式表示每天晚上8点运行,我必须等到晚上8点才能在我的机器上实际运行该功能.

所以我的问题是:在本地运行一次函数的最简单和最好的方法什么?

我尝试或考虑过的事情:

  1. 使用更频繁的计时器计划仅用于本地开发
    • 这是好的,但并不完美 - 除非它非常频繁,否则你还需要等待一段时间,如果非常频繁,那么该函数可能会运行多次.这就是我现在正在做的事情.
  2. 编写一个直接调用函数Run()方法 的控制台应用程序或单元测试
    • 这不是100%直截了当,因为你必须提供TimerInfoTraceWriter参数Run()- 而且我发现了很少的文档.

Microsoft 在Azure功能页面中测试代码策略对此主题没有太大帮助 - 它只提到计时器触发器作为测试其他触发器类型的方法.

在一个完美的世界里,我会点击F5并且该功能会立即运行一次 - 就像开发一个"普通"的.NET应用程序一样.

c# timer azure azure-functions

40
推荐指数
8
解决办法
9860
查看次数

标签 统计

azure ×1

azure-functions ×1

c# ×1

timer ×1