1

下午好,我的朋友们,我想告诉你们我是巴西人,所以我想为我的英语道歉。

我有一个 azure webjob,想将其设置为每 15 分钟运行一次。

我正在使用 Visual Studio 部署我的网络作业,并且我已经有了我的 settings.job 文件。我的问题是,当我设置为每三分钟运行一次时,它运行良好,但是当我将它设置为每十五分钟运行一次时,它只能运行 0、15、30、45 分钟。

我希望你能理解我

这就是我的 settings.job 文件的样子:

{ "schedule": "* */15 * * * *" }
4

3 回答 3

7

cron 表达式的语义是它们在时间上是绝对的。因此,当您拥有 时0 */15 * * * *,这意味着在整点后的 0 分钟、15 分钟后等运行......没有办法让它从任意时间开始。

当我设置为每三分钟运行一次时,您写道,它运行良好,但那里的行为应该是相同的:0、3、6、9,...

顺便说一句,请注意您的 cron 表达式并不完全正确。而不是* */15 * * * *,它需要是0 */15 * * * *。否则,它将每秒运行一整分钟,每 15 分钟运行一次。

于 2017-09-28T18:52:40.733 回答
6

所以一个 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

希望这可以帮助!

于 2018-02-08T14:28:38.720 回答
1

您也可以使用TimeSpan表达式,我觉得它更容易理解:

public async static Task SomethingAsync(TimerTrigger("00:15:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timer)

正如所说,“00:15:00”是“每 15 分钟” TimeSpan.FromMinutes(15).ToString()

这要求您使用Microsoft.Azure.WebJobs.Extensions NuGet,您必须小心匹配您的Microsoft.Azure.WebJobs版本。

于 2020-08-26T08:47:53.647 回答