Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
部署新函数应用程序时,azure函数是否会优雅地关闭现有函数调用?_Azure_Azure Devops_Azure Functions_Azure Functions Runtime - Fatal编程技术网

部署新函数应用程序时,azure函数是否会优雅地关闭现有函数调用?

部署新函数应用程序时,azure函数是否会优雅地关闭现有函数调用?,azure,azure-devops,azure-functions,azure-functions-runtime,Azure,Azure Devops,Azure Functions,Azure Functions Runtime,我想了解部署新版本azure函数应用程序的含义,因为它与现有函数调用/线程相关。我知道,对于asp.net等框架,可以选择将app_office.htm添加到根目录 如何确保不终止活动线程并允许应用程序在部署前正常关闭?如果使用取消令牌 所以,默认情况下,如果您的AF将转到关机,它将通知线程有关关机的信息,如果您不使用取消令牌,它将等待一段时间(我找不到多长时间),并在作业未完成时杀死您的线程 如果您使用取消令牌 所以,默认情况下,如果您的AF将转到关机,它将通知线程有关关机的信息,如果您不使用

我想了解部署新版本azure函数应用程序的含义,因为它与现有函数调用/线程相关。我知道,对于asp.net等框架,可以选择将app_office.htm添加到根目录

如何确保不终止活动线程并允许应用程序在部署前正常关闭?

如果使用取消令牌

所以,默认情况下,如果您的AF将转到关机,它将通知线程有关关机的信息,如果您不使用取消令牌,它将等待一段时间(我找不到多长时间),并在作业未完成时杀死您的线程

如果您使用取消令牌


所以,默认情况下,如果您的AF将转到关机,它将通知线程有关关机的信息,如果您不使用取消令牌,它将等待一段时间(我找不到多长时间),并在作业未完成时杀死您的线程

选项1:使用可实现正常关机。有一件事我似乎无法确定,那就是一旦发出取消令牌,您的宽限期是多少:(

选项2是使用。这些扩展提供了可靠的执行方式,允许您的函数在关机或失败后在执行中重新启动。简言之,持久函数在每个等待语句中检查函数的状态,并从最后一个成功的等待语句中启用重播

选项3将使用部署插槽,并具有Prod1和Prod2插槽以及备用部署。这将允许您构建一种漏站方法,以将运行的实例保留到完成。您仍然需要使用持久功能或取消令牌来应对失败的实例和未知异常


选项4是使用两个功能应用程序实例,并使用负载平衡器来管理它们之间的流量。

选项1:使用实现正常关机。我似乎无法确定的一件事是,一旦发出取消令牌,您的宽限期是:(

选项2是使用。这些扩展提供了可靠的执行方式,允许您的函数在关机或失败后在执行中重新启动。简言之,持久函数在每个等待语句中检查函数的状态,并从最后一个成功的等待语句中启用重播

选项3将使用部署插槽,并具有Prod1和Prod2插槽以及备用部署。这将允许您构建一种漏站方法,以将运行的实例保留到完成。您仍然需要使用持久功能或取消令牌来应对失败的实例和未知异常


选项4是使用两个函数应用程序实例,并使用负载平衡器来管理它们之间的流量。

我不认为这是我想要的。我在谈论确保线程不会过早终止的部署方面。取消令牌是指客户端可以显式请求取消的令牌,这不是我想要的我正在做。持久的功能也不是我想要的。它更多地与主机关闭逻辑有关,您需要什么场景(和HA)是部署插槽。有一个Prod1和Prod2插槽以及备用部署,rhis启用drainstop方法来完成对运行实例的服务。您仍然需要使用耐久性或取消令牌来满足失败实例和未知异常。我不认为这是我要找的。我在谈论部署方面确保线程不会过早终止。取消令牌是客户端可以显式请求取消的令牌,这不是我要做的。持久功能也不是我要找的。它更与主机关闭逻辑有关,这是该场景(和HA)所需的is部署插槽。有一个Prod1和Prod2插槽以及备用部署,rhis启用drainstop方法来完成或服务运行实例。您仍然需要使用耐久性或取消令牌来处理失败实例和未知异常。我不明白。对于由q触发的功能,我到底该怎么办ueue在我部署新版本时发送消息。你说我需要以某种方式发送取消令牌吗?我认为这听起来不对:/想想我们以前是如何使用app_offline.htm的。它提供了一种优雅的方式来拒绝传入请求,但仍能处理现有线程处理。@joey当你准备关闭主机时,它不会接受any触发器是第一件事,但如果您有任何正在进行的任务,AF将等到任务完成。@joey这里也有同样的东西。这就是为什么取消令牌会来帮助您。AF主机也在使用它,以防止侦听器启动新线程,但您也必须使用它,比如说,如果您有任务,发送可以运行4分钟的新闻稿实例。因此,如果您检查取消令牌,您应该停止并尽快将新消息放入队列,以便在重新启动AF后将其拾取。我不明白。当我部署新版本时,我将如何处理由队列消息触发的函数。您说我需要以某种方式发送取消令牌?我不知道t think think think right:/想想我们过去是如何使用app_offline.htm的。它提供了一种优雅的方式来拒绝传入的请求,但仍然可以处理现有的线程处理。@joey当您AF要关闭主机时,它不会接受任何触发器,但如果您有任何正在进行的任务,AF会等到任务完成。@joey same事情就是这样。这就是为什么取消令牌会起到帮助作用。AF主机也在使用它,以防止侦听器启动新线程,但您也必须使用它,比如说,如果您有任务,请发送可以运行4分钟的新闻稿。所以,如果您检查取消令牌
public static class AsyncExample
{
    [FunctionName("BlobCopy")]
    public static async Task RunAsync(
        [BlobTrigger("sample-images/{blobName}")] Stream blobInput,
        [Blob("sample-images-copies/{blobName}", FileAccess.Write)] Stream blobOutput,
        CancellationToken token,
        ILogger log)
    {
        log.LogInformation($"BlobCopy function processed.");
        await blobInput.CopyToAsync(blobOutput, 4096, token);
    }
}