Azure functions 我要睡觉了

Azure functions 我要睡觉了,azure-functions,azure-durable-functions,Azure Functions,Azure Durable Functions,我有一个持久的azure函数(2.0),它可以根据需要调用自身来实现一个永恒的编排。代码如下。这可以很好地运行大约20分钟(比如说大约50次迭代)。然而,在这段时间之后,它进入睡眠状态并停止工作。如果我导航到Azure门户,只需单击功能应用程序并单击功能列表(即,我只需单击周围,但不更改任何设置或停止/启动任何内容),它会突然“唤醒”并继续运行,没有问题。日志中没有错误或问题,只是指示非活动期,然后日志恢复。我是不是错过了一个场景 public static async Task Run([Or

我有一个持久的azure函数(2.0),它可以根据需要调用自身来实现一个永恒的编排。代码如下。这可以很好地运行大约20分钟(比如说大约50次迭代)。然而,在这段时间之后,它进入睡眠状态并停止工作。如果我导航到Azure门户,只需单击功能应用程序并单击功能列表(即,我只需单击周围,但不更改任何设置或停止/启动任何内容),它会突然“唤醒”并继续运行,没有问题。日志中没有错误或问题,只是指示非活动期,然后日志恢复。我是不是错过了一个场景

public static async Task Run([OrchestrationTrigger] DurableOrchestrationContextBase ctx, ILogger log)
{
    try
    {
        var config = ctx.GetInput<Config>();
        config = await ctx.CallActivityAsync<Config>("GetConfig", null);
        await ctx.CallActivityAsync("ProcessDetails", config);

        var nextCheckpoint = ctx.CurrentUtcDateTime.AddSeconds(config.PollingIntervalInSeconds);

        await ctx.CreateTimer(nextCheckpoint, CancellationToken.None);             
        ctx.ContinueAsNew(config);   
    }
    catch (Exception ex)
    {
        log.LogError($"[Error!][Failed with: {ex.ToString()}]");
        throw;
    }
}
经过大量代码优化后,现在仍然存在问题,即使度量看起来坚如磐石


您最有可能遇到的是

这个问题现在已经修复,但是如果您受到影响,那么您需要在修复完成后明确同步触发器。要执行此操作,请转到门户中的函数应用程序,并单击树中函数应用程序名称旁边的小刷新图标。你只需要做一次


然后,您可以离开门户,它应该会继续愉快地运行。

当您使用Func的消费计划时,可能会发生这种情况。这意味着在感染一段时间后,azure将暂停您的Func,当系统中出现新事件或请求时,它将重新激活您的功能。 要解决此问题,您可以执行以下操作:

  • 使用应用程序服务计划
  • 使用保险费计划
  • 创建一些应用程序来预热你的func

您可以在文章

中阅读更多详细信息,这仍然发生在所有内容的新部署上,但点击刷新的工作方法似乎暂时保持不变。我将尝试w workaround hosts.json,有点混乱,但我的将是:{“扩展”:{“版本”:“2.0”,“durableTask”:{“HubName”:“myhub”,“maxConcurrentActivityFunctions”:10,“maxConcurrentOrchestratorFunctions”:1},“版本”:“2.0”,“durableTask”:{“HubName”:“myhub”,“maxConcurrentActivityFunctions”:10,“maxConcurrentOrchestratorFunctions”:1},“functionTimeout”:“00:10:00”}您好,David,很遗憾,同步无法工作,问题仍然存在。我已使用日志/图表更新了我的问题。我现在正在根据您列出的文章尝试重复配置部分。好的,几乎解决了问题。仍然需要重复主机配置。但是,新的CI部署仍然需要导航到功能ns实例并刷新以使其生效。这很奇怪。您可以共享处于该状态的任何测试函数应用程序的名称吗?不公开,不。
{
  "version": "2.0",
  "extensions": {

    "durableTask": {
      "HubName": "myHub",
      "maxConcurrentActivityFunctions": 10,
      "maxConcurrentOrchestratorFunctions": 1
    }
  },
  "durableTask": {
    "HubName": "myHub",
    "maxConcurrentActivityFunctions": 10,
    "maxConcurrentOrchestratorFunctions": 1
  },
  "functionTimeout": "00:10:00"
}