Azure订阅和webjob问题

时间:2016-04-01 21:46:27

标签: azure

所以我想尝试一个我想要在azure上主持的小项目,这是一个工作正常的网络应用程序,我最近发现了webjobs,我现在想用它来运行任务数据收集和更新,我有一个控制台应用程序。
我的问题是我无法设置时间表,因为它已发布到不支持调度的Web应用程序,所以我尝试使用Azure Webjobs SDK并使用计时器,但它不会在没有AzureWebJobsStorage的情况下运行连接字符串是我无法获得的,因为我的Azure帐户是Dreamspark帐户,我无法使用它创建Azure存储帐户。
所以我想知道是否有某种方法让这个webjob以某种方式运行(每小时左右)。否则,如果我刚刚将我的帐户升级为“即用即付”?我还能保留我的免费功能吗?即SQL Server。

我不确定这是否是正确的问题,但我尝试使用谷歌搜索没有成功。

更新:决定让控制台应用程序在infinate循环中运行,并且只是通过门户网站监控它,下面的代码就是我用来制作循环的。

class Program
{
    static void Main()
    {
        var time = 1000 * 60 * 30;
        Timer myTimer = new Timer(time);
        myTimer.Start();
        myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);

        Console.ReadLine();
    }

    public  static void myTimer_Elapsed(object sender, ElapsedEventArgs e)
    {
        Functions.PullAndUpdateDatabase();
    }
}

1 个答案:

答案 0 :(得分:0)

Amit Apple的博客标题为" How to add a schedule to a triggered WebJob"

详细介绍了按计划安排网络工作的最简单方法。

就像在控制台应用程序中添加一个名为settings.job的JSON文件一样简单,并在其中描述您想要作为cron表达式的计划,如下所示:

{"schedule": "the schedule as a cron expression"}

例如,要每30分钟运行一次作业,您需要在settings.job文件中执行此操作:

{"schedule": "0 0,30 * * * *"}

Amit的博客也详细介绍了如何编写cron表达式。

警告:此方法中使用的计划机制托管在运行Web应用程序的实例上。如果您的Web应用程序未配置为Always On且未经常使用,则可能会将其卸载,然后调度程序将停止运行。

要防止出现这种情况,您需要将您的网络应用程序设置为Always On,或者根据Azure Scheduler服务选择其他计划选项,如标题为" {{3}的博文中所述}"由David Ebbo撰写。