我正在创建一个新的Azure WebJob项目 - 它似乎是一个可以作为Web作业运行的控制台应用程序的精美版本.
我希望这个工作能够根据时间表运行,但是在Main()
方法中 - 见下文 - 微软为您host.RunAndBlock()
提供了连续运行的工作.
如果我希望工作定期运行,我是否需要更改?
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
mathewc.. 28
使用Azure WebJobs SDK时,您可以使用它TimerTrigger
来声明按计划运行的作业功能.例如,这是一个在启动时立即运行的函数,然后每两个小时运行一次:
public static void StartupJob(
[TimerTrigger("0 0 */2 * * *", RunOnStartup = true)] TimerInfo timerInfo)
{
Console.WriteLine("Timer job fired!");
}
您可以TimerTrigger
通过安装Microsoft.Azure.WebJobs.Extensions nuget包获得和其他扩展.有关TimerTrigger
该软件包的更多信息以及该软件包中的其他扩展以及如何使用它们,请参阅azure-webjobs-sdk-extensions repo.使用时TimerTrigger
,请务必添加config.UseTimers()
对启动代码的调用以注册扩展名.
使用Azure WebJobs SDK时,将代码部署到Continuous WebJob,并启用AlwaysOn.然后,您可以在该WebJob中添加所需的许多预定功能.
使用Azure WebJobs SDK时,您可以使用它TimerTrigger
来声明按计划运行的作业功能.例如,这是一个在启动时立即运行的函数,然后每两个小时运行一次:
public static void StartupJob(
[TimerTrigger("0 0 */2 * * *", RunOnStartup = true)] TimerInfo timerInfo)
{
Console.WriteLine("Timer job fired!");
}
您可以TimerTrigger
通过安装Microsoft.Azure.WebJobs.Extensions nuget包获得和其他扩展.有关TimerTrigger
该软件包的更多信息以及该软件包中的其他扩展以及如何使用它们,请参阅azure-webjobs-sdk-extensions repo.使用时TimerTrigger
,请务必添加config.UseTimers()
对启动代码的调用以注册扩展名.
使用Azure WebJobs SDK时,将代码部署到Continuous WebJob,并启用AlwaysOn.然后,您可以在该WebJob中添加所需的许多预定功能.
在时间表上触发WebJob的一种简单方法是将其编码为常规控制台应用程序,然后只需将带有基于cron的时间表配置的“ settings.job”添加到项目中即可。例如,以下定义将每5分钟触发一次:
{ "schedule": "0 */5 * * * *" }
无需使用JobHost,只需确保将WebApp配置为“始终在线”即可。然后,您应该将作业部署为触发的WebJob。