我可以在代码中运行Azure功能吗?

时间:2017-03-04 19:12:25

标签: c# azure timer azure-functions

我可以在代码中运行Azure功能吗?

我的意思是,有一些c#项目并在Azure上托管它我希望用户Timer按时完成后台工作。 有Azure SDK(或其他)一些方法来实现计时器行Azure Functions但在代码中?

P.S。我的意思是,我可以在App Service中使用某些类似Azure功能的方法吗? 例如,我想每5分钟运行一段代码,但不是所有代码。

嗯..谢谢你的答案! 我的意思是:

 var azureTimer=new AzureFunctionTimer(5*60*1000);
 azureTimer.Elapsed+=SomeHandler;

其中AzureFunctionTimer是Azure SDK的一部分(例如)。

为什么我问?我认为(可能是我错了)使用像System.Threading.Timer这样的计时器利用Azure主机上的CPU计时器,即使已经过时的事件还没有上升。

例如:

  var timer=new Timer(5*60*1000);
      timer.Elapsed+=SomeHandler; 
      timer.Start(); //and while timer not rise event it utilize CPU already. (Am i right?)

为了防止它应该使用一些Azure SDK函数,如Azure Function(如果存在)。

3 个答案:

答案 0 :(得分:2)

我不太确定您要问的是什么,但如果您尝试使用Azure功能每5分钟(或任何时间段)运行一些内容,您就可以制作计时器功能。这意味着该功能将每5分钟自动触发一次并运行您的代码。当您使用Azure仪表板创建新功能时,其中一个模板用于"计时器"这将允许您在定义的每个时段运行一些代码。

答案 1 :(得分:1)

不,您无法使用计时器,Azure功能将在5分钟后关闭,但您可以通过计时器(webhooks)在外部调用它们,或使用内部Azure功能cron计划或其他事件,例如队列中的新消息。 / p>

答案 2 :(得分:1)

Azure Functions以反应方式工作,只有在事件发生时才会运行。 因此,您可以做的最好的事情是使用一种触发器(例如,http触发器)并在需要时调用Azure函数。