Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 functions 为什么“重播”行为可以确保Azure持久功能的可靠执行?_Azure Functions_Azure Durable Functions - Fatal编程技术网

Azure functions 为什么“重播”行为可以确保Azure持久功能的可靠执行?

Azure functions 为什么“重播”行为可以确保Azure持久功能的可靠执行?,azure-functions,azure-durable-functions,Azure Functions,Azure Durable Functions,我认为重播的行为确保了Azure持久功能的可靠执行,如以下链接所述 但是,我不知道为什么这意味着可靠,以及重播和不重播的区别 回复的行为非常复杂。我想不使用回复比使用重播简单 为什么持久功能使用replay?为什么replay的行为确保Azure持久功能中的可靠执行?特别需要可靠执行,因为持久功能通常最适合于涉及多个功能(orchestrator和activity)的复杂长时间运行操作 在消费计划上运行时,函数应用程序可能会在虚拟机之间移动,具体取决于函数运行的时间。在这种情况下,您的函数应该能

我认为重播的行为确保了Azure持久功能的可靠执行,如以下链接所述

但是,我不知道为什么这意味着可靠,以及重播和不重播的区别

回复的行为非常复杂。我想不使用回复比使用重播简单


为什么持久功能使用replay?为什么replay的行为确保Azure持久功能中的可靠执行?

特别需要可靠执行,因为持久功能通常最适合于涉及多个功能(orchestrator和activity)的复杂长时间运行操作

在消费计划上运行时,函数应用程序可能会在虚拟机之间移动,具体取决于函数运行的时间。在这种情况下,您的函数应该能够在下一个VM中的一个VM中从中断的位置运行。这基本上就是重播的用武之地

您的函数基本上每次都会重新运行,以确保函数的当前状态与提交到Azure存储中的状态相同,而持久性函数用于外部状态管理/日志记录

请注意,这并不意味着您的函数每次都会重新运行,相反,它们的结果也会被存储起来,以便在不实际重新运行函数的情况下重新水合函数执行状态

但为了实现这一点,您的编排器代码有一些约束,您必须遵循这些约束。作为参考

确定性-不要使用在每次回放时提供不同输出的函数。如果需要这些函数,请将它们移动到它们自己的活动函数中 非阻塞 除了使用持久函数库进行的异步操作外,没有其他异步操作 避免无限循环
您可以阅读有关持久函数实现的基本模式的更多信息。

请允许我确认我的理解如下。如果Orchestrator函数和Activity函数存在于同一个VM中,并将它们的状态存储在VM的内存中,则它们无法从VM崩溃时重新启动。但是,如果Orchestrator函数和Activity函数在不同的VM内运行,并将其状态存储在外部存储(如Azure存储)中,则即使VM崩溃,它们也可以通过提取Activity函数的状态来调用Activity函数,从任何时间重新启动。这是可靠执行的一大优势。是的,准确地说!所有这些都由持久功能扩展负责。