我正在创建一个新的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();
}发布于 2015-12-02 08:28:13
在使用Azure WebJobs SDK时,您可以使用TimerTrigger来声明按计划运行的作业函数。例如,这里有一个函数,它在启动时立即运行,然后每两小时运行一次:
public static void StartupJob(
[TimerTrigger("0 0 */2 * * *", RunOnStartup = true)] TimerInfo timerInfo)
{
Console.WriteLine("Timer job fired!");
}您可以通过安装Microsoft.Azure.WebJobs.Extensions nuget包来获取TimerTrigger和其他扩展。有关TimerTrigger和该包中的其他扩展以及如何使用它们的更多信息,可以在azure-webjobs-sdk-extensions repo中找到。使用TimerTrigger时,请确保在启动代码中添加对config.UseTimers()的调用以注册扩展。
使用Azure WebJobs SDK时,您可以将代码部署到Continuous WebJob,并启用AlwaysOn。然后,您可以在该WebJob中添加任意数量的预定函数。
发布于 2016-03-15 19:01:22
按计划触发WebJob的一种简单方法是将其编码为常规的控制台应用程序,然后只需将带有基于cron的调度配置的'settings.job‘添加到项目中。例如,以下定义将每5分钟触发一次:
{
"schedule": "0 */5 * * * *"
}无需使用JobHost,只需确保您的WebApp配置为'Always On‘即可。然后,您应该将该作业部署为触发的WebJob。
发布于 2015-12-02 05:44:35
据我所知,有两种方法可以调度web作业,而不是让它连续运行:
创建调度调度程序
您可以在azure.microsoft.com上找到这两种方法的文档
我认为在计划或连续的情况下,您需要RunAndBlock,但如果您的工作是按需的,则可以删除它
https://stackoverflow.com/questions/34030441
复制相似问题