C# 经常从Azure存储队列中退出队列,而不运行多个cron作业实例?
我有一个非常典型的挑战:我有一个应用程序,我想发送电子邮件/短信。我使用第三方API(Mandrill和GatewayAPI)。这通常很快,但我的一些邮件很大,需要一段时间才能发送。这就是为什么我想把它转移到另一个系统 我的计划是做一个简单的C# 经常从Azure存储队列中退出队列,而不运行多个cron作业实例?,c#,asp.net,azure,azure-storage-queues,C#,Asp.net,Azure,Azure Storage Queues,我有一个非常典型的挑战:我有一个应用程序,我想发送电子邮件/短信。我使用第三方API(Mandrill和GatewayAPI)。这通常很快,但我的一些邮件很大,需要一段时间才能发送。这就是为什么我想把它转移到另一个系统 我的计划是做一个简单的Azure Web作业读取经常运行的Azure消息队列,以确保所有新的通信都能快速发送 我的问题是:如果我的工作时间有时超过了时间间隔,这是一个问题吗?如果是这样,我的设计是否有明显的缺陷(即使用消息队列和间隔较短的web作业) (我希望这不是一个基于意见的
Azure Web作业
读取经常运行的Azure消息队列
,以确保所有新的通信都能快速发送
我的问题是:如果我的工作时间有时超过了时间间隔,这是一个问题吗?如果是这样,我的设计是否有明显的缺陷(即使用消息队列和间隔较短的web作业)
(我希望这不是一个基于意见的问题-实际上不是-我对如何编程此设置有实际问题)您需要做的是订阅特定队列的触发器 这真的很简单。基于标准模板创建新的Azure web作业时,默认情况下会在
Functions.cs
中添加以下函数:
// This function will get triggered/executed when a new message is written
// on an Azure Queue called queue.
public static void ProcessQueueMessage([QueueTrigger("QUEUENAME")] string message, TextWriter log)
{
// your code
}
然后将代码移到这里,就不会有间隔问题,因为触发器会立即处理它。您需要做的是将触发器订阅到特定队列 这真的很简单。基于标准模板创建新的Azure web作业时,默认情况下会在
Functions.cs
中添加以下函数:
// This function will get triggered/executed when a new message is written
// on an Azure Queue called queue.
public static void ProcessQueueMessage([QueueTrigger("QUEUENAME")] string message, TextWriter log)
{
// your code
}
然后将代码移到这里,就不会有间隔问题,因为触发器会立即处理它