Azure Webjob 队列触发器不起作用
Azure Webjob Queue trigger not working
我的队列触发器仅在 azure 队列中填充消息并且同时 webjob 为 运行 时才起作用。(在我的本地开发环境中)
但是当我首先启动 webjob(有队列触发器),然后在几秒钟后将新消息放入队列时,触发器没有检测到它们。一旦没有新消息,触发器就会停止收听。这是触发器的正常行为吗?如果不是,我该如何解决这个问题?
主要方法:
static void Main()
{
InitializeQueue();
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
带队列触发器的函数
public static void ProcessQueueMessage([QueueTrigger("myqueue")] CloudQueueMessage message)
{
Debug.Write(message.AsString);
}
对于按需 WebJobs,Azure 有一个名为 WEBJOBS_IDLE_TIMEOUT
的配置设置,以秒为单位表示,默认为两分钟。
如果您的按需 WebJob 没有在 WEBJOBS_IDLE_TIMEOUT
间隔内触发,Azure 将终止您的 WebJob。
我建议将您的 Web 应用程序的 WEBJOBS_IDLE_TIMEOUT
变量设置为合理的秒数,以防止这种情况发生。
您可以在 Web 应用程序的应用程序设置屏幕上设置此变量,方法是将其添加到托管您的 WebJob 的 Web 应用程序实例的应用程序设置部分。
我的队列触发器仅在 azure 队列中填充消息并且同时 webjob 为 运行 时才起作用。(在我的本地开发环境中) 但是当我首先启动 webjob(有队列触发器),然后在几秒钟后将新消息放入队列时,触发器没有检测到它们。一旦没有新消息,触发器就会停止收听。这是触发器的正常行为吗?如果不是,我该如何解决这个问题?
主要方法:
static void Main()
{
InitializeQueue();
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
带队列触发器的函数
public static void ProcessQueueMessage([QueueTrigger("myqueue")] CloudQueueMessage message)
{
Debug.Write(message.AsString);
}
对于按需 WebJobs,Azure 有一个名为 WEBJOBS_IDLE_TIMEOUT
的配置设置,以秒为单位表示,默认为两分钟。
如果您的按需 WebJob 没有在 WEBJOBS_IDLE_TIMEOUT
间隔内触发,Azure 将终止您的 WebJob。
我建议将您的 Web 应用程序的 WEBJOBS_IDLE_TIMEOUT
变量设置为合理的秒数,以防止这种情况发生。
您可以在 Web 应用程序的应用程序设置屏幕上设置此变量,方法是将其添加到托管您的 WebJob 的 Web 应用程序实例的应用程序设置部分。