Webjob 始终发布为连续而不是触发
Webjob always publishes as Continuous and not Triggered
我有一个 Azure WebJob,我从 visual studio 2017 年发布到标准 S1 应用服务,WebJob 应该由 CRON 触发,但始终发布为连续,我无法弄清楚我做错了什么(其他两个 WebJobs 发布正常)
我在应用程序设置中将应用程序服务设置为 'Always On'
我在根目录中有一个 settings.job 文件和我的日程安排
{
"schedule": "0 3 5 * * 1-5"
}
我的程序class
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
}
}
您第一次选择 'Publish as a WebJob' 时,它会询问您是要连续还是按需(包括预定):
如果您选错了,只需删除“属性”下的 webjob-publish-settings.json
,然后重试。
顺便说一句,您的代码过于复杂,因为您不必要地使用 WebJobs SDK。相反,您的代码可以简单地是:
static void Main()
{
// Do Stuff
}
您可以通过编辑 WebJob 项目的 Properties 文件夹中的 webjob-publish-settings.json 文件在 'Continuous' 和 'Triggered' 模式之间切换。
在此 json 文件中,您可以将 "runMode:" 设置为 Continuous 或 OnDemand(已触发):
连续
按需
你在settings.job
中设置了{ "is_singleton": true }
了吗?
如果是这样,您不能 运行 多个 WebJob 实例。如果您发布并 运行 您的 WebJob 到 Azure 云,您永远不能 运行 它在本地,除非您使用不同的存储帐户。
我有一个 Azure WebJob,我从 visual studio 2017 年发布到标准 S1 应用服务,WebJob 应该由 CRON 触发,但始终发布为连续,我无法弄清楚我做错了什么(其他两个 WebJobs 发布正常)
我在应用程序设置中将应用程序服务设置为 'Always On'
我在根目录中有一个 settings.job 文件和我的日程安排
{
"schedule": "0 3 5 * * 1-5"
}
我的程序class
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
}
}
您第一次选择 'Publish as a WebJob' 时,它会询问您是要连续还是按需(包括预定):
如果您选错了,只需删除“属性”下的 webjob-publish-settings.json
,然后重试。
顺便说一句,您的代码过于复杂,因为您不必要地使用 WebJobs SDK。相反,您的代码可以简单地是:
static void Main()
{
// Do Stuff
}
您可以通过编辑 WebJob 项目的 Properties 文件夹中的 webjob-publish-settings.json 文件在 'Continuous' 和 'Triggered' 模式之间切换。
在此 json 文件中,您可以将 "runMode:" 设置为 Continuous 或 OnDemand(已触发):
连续
按需
你在settings.job
中设置了{ "is_singleton": true }
了吗?
如果是这样,您不能 运行 多个 WebJob 实例。如果您发布并 运行 您的 WebJob 到 Azure 云,您永远不能 运行 它在本地,除非您使用不同的存储帐户。