以编程方式停止天蓝色功能

时间:2018-11-07 21:40:42

标签: azure azure-functions

嗨,我了解如果我创建一个由队列中的msg触发的azure函数,则可以在队列中有多个消息的情况下(水平)横向扩展。换句话说,同一个azure函数的多个实例可以运行以处理队列中的消息。

我还知道,在azure函数中,我可以获取正在运行的实例的ID。 假设当我的azure函数实例启动时,我将正在运行的实例的ID存储在数据库中。

现在,我的问题是,如何以编程方式停止/杀死azure函数的特定实例(由存储的ID标识)?

谢谢!!

场景

我为用户提供了一个仪表板。他们可以在其中创建任务的位置。一旦创建任务,定义就会与用户ID一起作为味精进入队列。一旦消息在队列中可用,就会触发azure函数。现在,当用户刷新仪表板时,他/他会看到(由他/她创建的)任务列表,无论它们是正在运行还是已完成。现在,我还需要给他们一个选择来停止正在运行的任务。

现在,多个用户可以使用不同的参数创建任务,并在同一队列中发送多个msg,这将导致运行同一个Azure函数的多个实例。每个实例都与特定用户绑定。而且如果用户选择停止一个任务(这是同一天蓝色函数的实例),我需要停止该天蓝色函数的特定实例(与禁用整个天蓝色函数不同)。现在我就知道一个正在运行的实例是ID,我想知道是否可以从代码中停止/杀死/取消该特定功能实例。

我希望我能成功解释我的情况。如果您还有其他问题,请告诉我。

1 个答案:

答案 0 :(得分:1)

今天无法执行此操作。即使您要杀死一个实例,Functional Scale Controller可能也会看到您需要更多实例进行处理,并且无论如何都会为您启动另一个实例。

最好完全了解这里的情况-您是否要限制横向扩展?还是停止个别失控功能?

编辑:阅读完方案后,您是否看过耐用功能?您应该能够根据队列消息启动业务流程,并使用OrchestrationClient对其进行管理。需要注意的是,Activity函数一旦启动就无法取消,但是如果您将步骤分解得足够多,便可以终止正在进行的业务流程。有关更多详细信息,请参见此处: