Webjob始终发布为连续而非触发

时间:2017-06-23 12:01:21

标签: azure-webjobs

我有一个Azure WebJob,我将从Visual Studio 2017发布到标准S1应用程序服务,WebJob应该由CRON触发,但总是发布为Continuous,我无法弄清楚我做错了什么(另外两个WebJobs发布细)

我已将应用服务设置为“始终开启”#39;在应用程序设置中 enter image description here

我的根目录中有一个settings.job文件和我的日程表

{
     "schedule": "0 3 5 * * 1-5"
}

enter image description here

我的课程课程

namespace EventPushUpdater
{
    using Microsoft.Azure.WebJobs;
    using MBL.AzureKeyVaultHelpers;

    internal class Program
    {
        private static void Main()
        {
            Properties.Settings s = Properties.Settings.Default;

            IKeyVault kv = new KeyVaultHelper(s.ClientId, s.ClientKey, s.KeyVaultRoot);

            var config = new JobHostConfiguration();
            config.DashboardConnectionString = kv.GetSecretValue(s.DashboardConnectionString);
            config.StorageConnectionString = kv.GetSecretValue(s.DashboardConnectionString);            
            var host = new JobHost(config);

            host.Call(typeof(Functions).GetMethod("PushEvents"), new { keyVault = kv });
        }
    }

}

正在调用的函数

public class Functions
{
    [NoAutomaticTrigger]
    public static void PushEvents(IKeyVault keyVault)
    {
         // do stuff
    }
}

3 个答案:

答案 0 :(得分:5)

当您第一次选择“发布为WebJob”时,它会询问您是否需要连续或按需(包括已安排):

WebJob publish

如果选错了,只需在“属性”下删除webjob-publish-settings.json,然后重试。

顺便说一句,您的代码过于复杂,因为您不必使用WebJobs SDK 。相反,您的代码可以简单地为:

    static void Main()
    {
        // Do Stuff
    }

答案 1 :(得分:4)

您可以在'连续'之间切换和'触发'通过编辑WebJob项目的Properties文件夹中的webjob-publish-settings.json文件来模式。

webjob-publish-settings.json

在此json文件中,您可以将" runMode:" 设置为连续 OnDemand (已触发):

连续

Continuous

按需

Triggered

答案 2 :(得分:0)

您是否在{ "is_singleton": true }中设置了settings.job? 如果是这样,则您不能运行多个WebJob实例。如果将WebJob发布并运行到Azure云,则除非使用其他存储帐户,否则永远不能在本地运行它。

Azure Webjob timer trigger does not fire