【发布时间】:2019-04-16 09:31:10
【问题描述】:
azure 持久功能是否支持玉米作业。我需要一组任务每 5 分钟运行一次。在浏览 azure 持久函数的计时器部分时,没有看到任何为持久函数设置 cron 作业设置的示例
【问题讨论】:
-
您可以使用 CRON 触发器来启动一个 Durable 函数(它本身可能是永恒的)这在这里间接解释:stackoverflow.com/a/59582109/1690217
azure 持久功能是否支持玉米作业。我需要一组任务每 5 分钟运行一次。在浏览 azure 持久函数的计时器部分时,没有看到任何为持久函数设置 cron 作业设置的示例
【问题讨论】:
根据您的情况,您可以通过功能(非耐用)使用normal Timer Triggers。或者您可以使用 Durable 的 Eternal Orchestrations that wake up periodically。
【讨论】:
是与否,
Durable Functions 框架提供了一种定期运行 Orchestrator 功能的方法,参考以下代码
await context.CallActivityAsync("DoCleanup", null);
// sleep for one hour between cleanups
DateTime nextCleanup = context.CurrentUtcDateTime.AddHours(1);
await context.CreateTimer(nextCleanup, CancellationToken.None);
context.ContinueAsNew(null);
上面的代码会每隔一小时调用一次你的活动函数 DoCleanup。
正常计时器触发功能的问题是它们遇到重叠问题。例如,如果您想每 1 分钟运行一次,而您的函数执行需要 30 秒,那么您将面临重叠问题。
有了durable,上面的问题就解决了。它保证没有重叠。
唯一的问题是这个编排功能需要由一些持久客户端从外部触发一次,并且不能像计时器触发天蓝色功能那样自启动。
`
【讨论】: