转换.NET Core控制台应用程序以在Azure上作为连续后台服务运行

时间:2019-04-10 05:06:46

标签: .net function azure .net-core console-application

我有一个.NET Core控制台应用程序,希望将其作为永远不会在Azure上停止的后台服务运行。我应该将控制台应用程序转换为Azure功能还是Web作业?

如何在不停止的情况下运行功能(如果那是最好的选择)?我一直在使用每分钟运行一次的计时器触发器来运行该函数,但是我不确定这样做会如何。它会每分钟运行一次作业,然后在那之后运行一个新实例吗?有没有办法说运行功能而不停止运行?现在,我正在使用while(true)循环,但是我不确定我在做什么是执行此类操作的正确方法。

2 个答案:

答案 0 :(得分:1)

这听起来似乎很适合连续Web作业。

连续Web作业

  

在创建WebJob时立即启动。为了防止作业结束,程序或脚本通常在无休止的循环中进行工作。如果作业确实结束,则可以重新启动它。

     

在运行Web应用程序的所有实例上运行。您可以选择将WebJob限制为单个实例。

更多信息,请访问Run Background tasks with WebJobs in Azure App Service

答案 1 :(得分:0)

我正在考虑的一种选择是拥有VM并在其中运行该服务。

您所说的运行其他选项会每隔X个周期触发一次,但请不要长时间运行您的工作,并请注意,您最多只能受5分钟的限制(可以更多read here)。

如果运行触发器,则作业将在同一实例中启动(但您不必在意它的开始位置)。闲置一段时间后,功能主机将关闭。另外请记住,天蓝色函数可以扩展,并且您可以在多个实例中运行相同的作业