c# - 如何使用 Azure WebJob 中的计时器每天在特定时间调用方法?

标签 c# azure-webjobs azure-webjobssdk

我需要在 Main() 方法中调用 Run() 吗?因此它将每天在代码中提到的时间被调用。

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")

    { }
}

最佳答案

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

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

关于c# - 如何使用 Azure WebJob 中的计时器每天在特定时间调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48224857/

相关文章:

c# - 静态类和 Getter

c# - 使用 C# 提取受密码保护的 sfx 存档

c# - 异常处理 : user defined exception benefits

azure - 是否可以在 WebJobs VM 上创建 Azure 文件共享挂载?

c# - Azure Web 作业 : No functions found in another assembly

azure - 如何按失败筛选 Azure WebJob 函数调用历史记录?

c# - 使用 Json.Net C# 获取 json 对象中的值和键

c# - Azure WebJobs SDK TimerTrigger 函数未运行

nuget - WebJobs 升级到最新的 Nuget 包。升级 app.config 以不匹配 WindwosAzure.Storage DLL 版本

c# - Dnx (asp.net 5) 控制台应用程序作为 Azure Web 作业连接字符串配置未找到