下午好,我的朋友们,我想告诉你我是巴西人,所以我想为我的英语道歉。
我有一个天蓝色的webjob,并希望将其设置为每15分钟运行一次。
我正在使用Visual Studio部署我的webjob,我已经有了settings.job文件。我的问题是,当我设置每三分钟运行一次时,它运行完美,但是当我将它设置为每十五分钟运行一次时,它只能运行0,15,30,45分钟。
我希望你能成功理解我
这就是我的settings.job文件:
{ "schedule": "* */15 * * * *" }
答案 0 :(得分:4)
cron表达式的语义是它们在时间上是绝对的。因此,当你有0 */15 * * * *
时,它意味着在小时之后,15分钟之后正好运行0分钟等等......没有办法让它从任意时间开始。
当我设置为每三分钟运行一次时,你写了,它完美地运行,但行为应该是相同的:0,3,6,9 ......
顺便说一句,请注意你的cron表达式不太正确。而不是* */15 * * * *
,它必须是0 */15 * * * *
。否则,它将每隔一分钟运行一分钟,每15分钟一次。
答案 1 :(得分:3)
因此,CRON表达式由六个字段组成 - > {second} {minute} {hour} {day} {month} {day of the week}
因此,每隔15分钟就要开一份工作,应该是 - > 0 */15 * * * *
这是一个参考: https://docs.microsoft.com/en-us/azure/app-service/web-sites-create-web-jobs#cron-expressions
希望这有帮助!
答案 2 :(得分:0)
您也可以使用TimeSpan表达式,我发现它很容易理解:
public async static Task SomethingAsync(TimerTrigger("00:15:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timer)
如TimeSpan.FromMinutes(15).ToString()
所说,“ 00:15:00”是“每15分钟”。
这需要您使用 Microsoft.Azure.WebJobs.Extensions NuGet,您必须小心以匹配您的 Microsoft.Azure.WebJobs 版本。