可配置的计时器触发器 - Azure Web 作业

2024-01-04

我正在构建一项以固定间隔(例如 1 分钟)触发的工作。我已成功使用触发的网络作业,并在函数中硬编码了时间跨度。

public void foo([TimerTrigger("00:01:00")] TimerInfo timer)

现在,如果我想将触发时间从 1 分钟更改为 2 分钟,我必须重新部署代码。相反,有一种方法可以通过配置文件使 TimeTrigger 可配置。

请注意,不可能用动态读取值替换字符串,因为 TimerTrigger 属性是 const 字符串表达式或类型。


经过大量挖掘,我意识到这可以通过 SDK 扩展类来完成TimerSchedule.

为此,您需要一个能够用于多个触发器的基类。

class CustomTimerTriggerBase: TimerSchedule
{
    TimeSpan timer;
    public CustomTimerTriggerBase(string triggerConfigKey)
    {
        timer=TimeSpan.Parse(ConfigurationManager.AppSettings[triggerConfigKey]);
    }

    public override DateTime GetNextOccurrence(DateTime now)
    {
        return now.Add(timer);
    }
}

使用这个基地来生成你的计时器......

public sealed class FooTimer : CustomTimerTriggerBase
{
    public FooTimer() : base("FooTimerKey") {}
}

在你的 App.config 中有一个“FooTimer”键

<add key="FooTimerKey" value="00:02:00" />

在您的 webjob 函数中使用此 FooTimer 类。

public void foo([TimerTrigger(typeof(FooTimer)] TimerInfo timer)

现在,您只需更改应用程序配置中的值即可,而无需重新部署代码。NOTE:由于您使用 Timespan 进行解析,因此该字符串可以是 TimeSpan 格式中定义的任何您需要的格式。


UPDATE

正如所指出的我--''''''---------'''''''''''' https://stackoverflow.com/users/117700/l and 安迪·多贝多 https://stackoverflow.com/users/9032853/andy-dobedoe现在(截至 2019 年)实现这一目标要简单得多。

public static async Task RunAsync([TimerTrigger("%MYCRON%")]TimerInfo myTimer

找到名为 MYCRON 的设置并使用其中的 cron 表达式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可配置的计时器触发器 - Azure Web 作业 的相关文章

随机推荐

  • 将 UIActionSheet 选项连接到操作的正确方法

    在 iPhone 应用程序中使用 UIActionSheet 时 将操作与按钮匹配的典型方法似乎非常脆弱且美观不愉快 也许是因为我的 C C 背景 更多 Perl Java Lisp 等 按钮索引的匹配看起来像是太多的神奇数字 而且太脱节
  • 是否可以在 iOS 9 和 10 上使用核心数据(Xcode 8 和 Swift 3.0)?

    我想在 Swift 3 Xcode 8 中启动新应用程序并支持 iOS 8 4 9 x 如何处理核心数据 对于任何寻找它的人 我在这个答案中添加了由 xcode 7 swift 2 生成的核心数据模板及其 swift 3 转换 https
  • 如何可靠地找到 UIGestureRecognizer 的正确视图?

    我有一堆 UIView 如下图所示 红色 粉色 半透明 视图位于其他视图之上 红色有一个UISwipeGestureRecognizer 绿色有作为UITapGestureRecognizer 蓝色没有识别器 轻按一下visible绿色的
  • Cython 基于外部值的条件编译

    我尝试从 Cython pxd 有条件地编译 或生成 为 c 代码 我读到我可以 DEF 定义 aa 值 并 IF 根据其值有条件地生成 但是如何从 pxd 文件外部获取该值 具体来说 这两个案例现在对我来说很有趣 为 Cython 提供一
  • 使用 NVIDIA GPU 计算 SDK 4.0 和 microsoft VC++ 2010 Express 无需 GPU 硬件即可执行简单的 CUDA 程序

    我是 GPU 计算新手 但我在某处读到 可以使用模拟器 仿真器在没有 GPU 卡的情况下执行 CUDA 程序 我在 Windows Vista 上安装了 NVIDIA 的 GPU 计算 SDK 4 0 和 Visual C 2010 Exp
  • 如何计算android应用程序的功耗?

    有没有公 式 API或者方法 我想测试不同应用程序的功耗 使用adb工具可以查看每个正在运行的应用程序的功耗 adb shell dumpsys cpuinfo 样本输出 Load 1 12 1 07 1 01 CPU usage from
  • 从文件读取时在 shell 脚本中拆分字符串

    我有一个以下脚本 它应该从 properties 文件中逐行读取 然后根据 分隔符对其进行标记 并将值存储到两个变量中 然后显示它 但我不了解如何对其进行标记 然后将其存储在两个不同的变量中 然后将其用于进一步的目的 以下脚本可以很好地逐行
  • fork进程之间的随机数是相同的

    我正在从管理器进程中分叉多个进程 然后我想为这些分叉进程创建一个随机端口号来侦听 但是 当我随机播种并获得随机数时 我在三个进程之间获得相同的数字 例如 manager int main for int i 0 i lt rCount i
  • 有没有办法使用普通 ADO 从 SQL Server 检索视图定义?

    我使用 ADO 连接成功从 SQL Server 上托管的数据库中提取列定义OpenSchema 调用其各种形式 以便我可以以编程方式在另一个 SQL 数据库中重新创建这些表 到目前为止 一切都很好 与上表的主要交互是使用多个视图进行的 尽
  • 使用 imagejpeg 保存和提供图像文件

    我正在用 PHP 图像处理做一些实验 我正在尝试将一些图像转换为黑白版本 我基本上已经弄清楚了 但有一个小问题 为了减少服务器的压力 我想保存黑白版本 并仅对之前未通过脚本运行的图像运行图像过滤 所以 我有这样的事情
  • 使用代理拦截 C# 中的方法调用

    我想做的是能够拦截对对象方法和属性的调用 以实现横切关注点 我正在使用基于代理的 AOPContextBoundObject 然而 这不适用于递归方法调用 针对目标的第一次调用将被代理拦截并成功调用 允许我在这里进行横切 但是 第一个方法中
  • 无法在嵌入式 ASPX 代码中引用动态对象

    我正在 Page Init 事件期间创建一个 List 成员变量 我在从 aspx 页面中嵌入的 C 代码引用列表中的对象时遇到问题 该错误是运行时绑定程序异常 显示 object 不包含 JobID 的定义 当调用调试器时 我可以看到 f
  • 联合两个选择基于某些列(而不是整行)删除重复项

    我想合并 2 个 select 语句 结果将在记录方面不同 但是我想在第二个 select 语句中省略重复的结果 考虑某些列 select id name type parent from table1 where type 1 union
  • 在闪亮的应用程序上,ggplotly()渲染的大小是plot_ly()的一半。如何解决这个问题?

    当使用 ggplotly 与plot ly 在闪亮的应用程序中生成绘图时 绘图的宽度小于一半 这是为什么 有没有办法修复它 以便 ggplotly 生成与plot ly 或 ggplot2 宽度相同的图 我尝试过使用宽度参数 但这并不能解决
  • 在控制台 .NET Core 应用程序中创建用户

    我有一个 ASP NET Core 1 0 解决方案 包含 3 个项目 Web 控制台应用程序 DataAccessLayer 我使用 ASP NET Core Identity 和 Entity Framework Core SQL Se
  • 使用 iisnode 时保护 CookieSession

    我将节点与 IIS 一起使用iisnode https github com tjanczuk iisnode我在设置 CookieSession 选项时遇到问题secure true 我在 IIS 上使用 HTTPS 并将任何 HTTP
  • 如何更改 MathJax 的字体

    我无法让 MathJax 更改它用来渲染用 AsciiMath 编写的公式的字体 我已经在 StackOverflow 和网络上的其他地方阅读了类似问题的答案 MathJax 样式 https stackoverflow com quest
  • 处理 blob 游戏中的图像

    我设法将图片存储在 Google App 引擎 Blob 中 我可以从仪表板的 Blob 查看器中看到它 也可以使用服务处理程序在我的应用程序中看到它 然而 现在我有了这张图片 我想在将其提供给客户时调整它的大小 问题是我不能这样做 我不能
  • 如何使用 Swift 3 进行 Firebase 数据库查询来获取一些孩子?

    如何在 Firebase 数据库中进行查询以获取控制台中的一些子项 例如 从下面的快照中 我如何进行查询以获取Images where Des 11 我正在使用这段代码 func loadData Ref FIRDatabase datab
  • 可配置的计时器触发器 - Azure Web 作业

    我正在构建一项以固定间隔 例如 1 分钟 触发的工作 我已成功使用触发的网络作业 并在函数中硬编码了时间跨度 public void foo TimerTrigger 00 01 00 TimerInfo timer 现在 如果我想将触发时