Pri*_*ane 11 azure azure-webjobs
我在连续的Web作业中编写了以下函数:
public static void fun1([TimerTrigger("24:00:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timerInfo, TextWriter log)
{//Code}
public static void fun2([TimerTrigger("00:01:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timerInfo, TextWriter log)
{//code}
Run Code Online (Sandbox Code Playgroud)
其中,fun1没有被再次调用(在启动web作业后只调用一次),并且每个进程完成后,fun2将被调用1分钟触发器.
任何人都可以解释为什么?我做错了吗?
Tho*_*mas 34
您应该看一下以下文档TimerTriggerAttribute:
Cron表达式可以表示为:
* * * * * * command to be executed
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?????? day of week (0 - 7) (0 or 7 are Sunday, or use names)
? ? ? ? ??????????? month (1 - 12)
? ? ? ???????????????? day of month (1 - 31)
? | ????????????????????? hour (0 - 23)
? ?????????????????????????? min (0 - 59)
??????????????????????????????? second(0 - 59)
Run Code Online (Sandbox Code Playgroud)
在您的情况下,表达式是一个表示TimeSpan的字符串:
"24:00:00":此作业每24小时运行一次,RunOnStartup这意味着即使最近24小时内发生了上次运行,作业也将在webjob启动或重新启动时运行.
"00:01:00":此作业每分钟运行一次,RunOnStartup这意味着即使最后一次运行发生在最后一分钟,作业也将在webjob启动或重新启动时运行.
编辑
从这个答案:
这是由于TimeSpan.Parse的工作方式.如果你通过它"24:00:00"奇怪,它会给你一个持续24天的TimeSpan.不确定这是他们的预期行为还是他们身边的错误,但我们只是将表达式传递给他们并继承他们的行为.无论如何,为了您的目的,24小时可以使用"1.00:00"(指定1天).
| 归档时间: |
|
| 查看次数: |
7789 次 |
| 最近记录: |