首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计划的WebJob

计划的WebJob
EN

Stack Overflow用户
提问于 2015-12-02 05:23:12
回答 3查看 10.4K关注 0票数 10

我正在创建一个新的Azure WebJob项目--它似乎是一个可以作为web作业运行的控制台应用程序的精致版本。

我希望这个作业按计划运行,但在Main()方法中--见下文--微软为您提供了作业连续运行的host.RunAndBlock()

如果希望作业以定期计划的时间间隔运行,是否需要更改此设置?

代码语言:javascript
复制
static void Main()
{
    var host = new JobHost();

    // The following code ensures that the WebJob will be running continuously
    host.RunAndBlock();
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-02 08:28:13

在使用Azure WebJobs SDK时,您可以使用TimerTrigger来声明按计划运行的作业函数。例如,这里有一个函数,它在启动时立即运行,然后每两小时运行一次:

代码语言:javascript
复制
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中添加任意数量的预定函数。

票数 34
EN

Stack Overflow用户

发布于 2016-03-15 19:01:22

按计划触发WebJob的一种简单方法是将其编码为常规的控制台应用程序,然后只需将带有基于cron的调度配置的'settings.job‘添加到项目中。例如,以下定义将每5分钟触发一次:

代码语言:javascript
复制
{
  "schedule": "0 */5 * * * *"
}

无需使用JobHost,只需确保您的WebApp配置为'Always On‘即可。然后,您应该将该作业部署为触发的WebJob。

票数 5
EN

Stack Overflow用户

发布于 2015-12-02 05:44:35

据我所知,有两种方法可以调度web作业,而不是让它连续运行:

  1. 使用CRON expression
  2. Create a Scheduler使用WebJob

创建调度调度程序

您可以在azure.microsoft.com上找到这两种方法的文档

我认为在计划或连续的情况下,您需要RunAndBlock,但如果您的工作是按需的,则可以删除它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34030441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档