如何使azure功能在5到6分钟后停止时连续运行?

如何使azure功能在5到6分钟后停止时连续运行?,azure,apache-kafka,azure-functions,Azure,Apache Kafka,Azure Functions,我使用while循环在azure函数中连续处理数据。但是azure函数在5到6分钟后停止,我再次必须重新运行azure函数。是否有任何设置可以连续运行azure功能?我已经使用了上述代码。否,您应该使用WebJobs。Azure函数的运行时间上限为5分钟 下面是一篇文章,让您开始了解WebJobs: 它们(函数和webjob)基本上是一样的(由相同的SDK制作),因此移植代码将是微不足道的。您可以使用Azure函数执行长时间运行的作业,方法是在下创建它们,并启用AlwaysOn。此选项为您提供

我使用while循环在azure函数中连续处理数据。但是azure函数在5到6分钟后停止,我再次必须重新运行azure函数。是否有任何设置可以连续运行azure功能?我已经使用了上述代码。

否,您应该使用WebJobs。Azure函数的运行时间上限为5分钟

下面是一篇文章,让您开始了解WebJobs:


它们(函数和webjob)基本上是一样的(由相同的SDK制作),因此移植代码将是微不足道的。

您可以使用Azure函数执行长时间运行的作业,方法是在下创建它们,并启用AlwaysOn。此选项为您提供始终运行的专用基础结构,并且不会有当前5分钟的执行时间限制。

如前所述 -在专用服务计划中创建功能,而不是“消费/现收现付”。 重要相关信息: -检查持久函数,该函数允许您以单例和灵活的间隔使用函数,以及“监视模式” -在持久功能上,请选中“永久编排器”
-您还可以将您的函数标记为手动启动/触发

如果您决定采用Azure函数方法,您最好为Kafka使用自定义绑定/触发

Azure函数主要是事件驱动的,这意味着您需要一些东西来触发函数(计时器、队列、存储等)。因此,这使得函数不适合您试图实现的目标。根据下面的答案,WebJobs更适合此任务。我将在Azure Functions的下一个版本(下周左右)中添加,我们将把允许的最大超时值增加到10分钟。看见
public static void Run(string input, TraceWriter log)
{
    log.Info("SimpleProducer");
    KafkaOptions options = new KafkaOptions(new Uri("http://*******:9092"));
    BrokerRouter router = new BrokerRouter(options);
    Producer client = new Producer(router);
    while(true)
    {
        JObject obj = JObject.FromObject(new
              {
                ExchangeName = "BitFinex",
                CurrencyPair = "Dollar",
                MachineTime = DateTime.Now.ToString("dd-MM-yyyy_HH:mm:ss.ffffff"),
                OrderSide = "Buy",
                OrderId = "123",
                Price = "10",
                Quantity = "100"
              });
        log.Info(obj.ToString(Formatting.None));
        client.SendMessageAsync("tenant", new[] { new Message(obj.ToString(Formatting.None)) }).Wait();

        log.Info("Next Iteration");
    }

}