1

我们有一个运行时间很长的操作(可能是几天),我们希望从写入 Azure 存储的 BLOB 文件触发该操作。这项工作可以一年开始一次,从不开始,也可以在几天内开始多次。

Azure Batch作业看起来与我们需要的完全一样,假设批处理作业在运行时不需要“观察者”进程。例如,如果我们可以让 Azure Function 捕获 BLOB 事件,启动 Batch 作业,以“触发后忘记”类型的方式启动作业,然后 Function 结束,这正是我们所需要的。我们并不太担心报告作业的进度(我们为此使用了一个 SQL 表),我们只想启动作业然后在带外监视它。

有没有办法启动批处理作业并让发起者进程在作业继续在后台运行时消失?如果没有,有没有办法做到这一点而不必有一个不断运行的进程(Worker Role 或 Fabric Worker)?我们试图避免在 99.9% 的时间没有做任何事情的情况下让进程(Worker/Fabric 角色、使用 App 功能计划的功能等)一直运行。

4

1 回答 1

1

简短回答:不,您不需要观察者进程。

Azure Batch 任务本质上是异步的。当您添加任务(在作业下)时,您对 Batch 服务的调用会立即返回提交操作本身的成功或失败(而不是任务是否在计算节点上成功完成)。Batch 服务负责在池中的可用计算节点之间调度任务、内部监控任务的进度、更新统计信息等。

如果您选择这样做,您可以使用任何 SDK、REST API 或客户端工具独立于提交参与者监控任务的进度。或者,如果您的任务是更新外部监视器或数据存储,您可以选择自己带外监控它。或者您可以安排任务而不对其进行监控,该服务不会强制您监控/观看任务。

于 2017-02-07T23:13:05.623 回答