如何使用azure webjob中的计时器每天在特定时间调用方法?

时间:2018-01-12 10:59:31

标签: c# azure-webjobs azure-webjobssdk

我是否需要在Run()方法中调用Main()?所以它将在代码中提到的时间每天调用。

public class Program
{
    private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);


    static void Main()
    {
        var host = new JobHost();
        // The following code ensures that the WebJob will be running continuously

        host.RunAndBlock();
    }

    // This method will be called on weekly basis
    public static void Run([TimerTrigger(typeof(MyDailySchedule))] TimerInfo timerInfo, TextWriter log)
    {

        log4net.Config.XmlConfigurator.Configure();
        try
        {
            MainA.Wait();
        }
        catch (Exception ex)
        {

        }

    }
    static async Task MainA()
    {

        WebJob1 Service = new WebJob1();
        await Service.DeletData();

    }
}  

public class MyDailySchedule : DailySchedule
{
    public MyDailySchedule() :
        //Schedule
base("2:00:00", "14:00:00", "15:00:00")

    { }
}

1 个答案:

答案 0 :(得分:2)

您不需要使用WebJobs SDK来实现此目的。代替:

  • 编写一个简单的控制台应用程序,可以直接执行启动时所需的操作(即不使用任何JobHost)。
  • 使用cron表达式将其部署为预定的WebJob(有关详细信息,请参阅doc)。