标签: azure-storage-queues

在.NET服务总线队列与Azure队列服务之间进行选择

只是一个关于Azure应用程序的快速问题.如果我有许多需要通信的Web和Worker角色,文档说要使用Azure队列服务.

但是,我刚刚读到新的.NET Service Bus现在也提供了队列.这些看起来更强大,因为它们似乎提供了更加详细的API.虽然.NSB看起来更有趣,但它有几个问题让我在分布式应用程序中使用它时会很谨慎.(例如,Queue Expiration ...如果我不能保证队列将按时更新,我可能会失去它!).

有没有人有任何经验使用这两种技术中的任何一种,并且可以提供何时选择其中一种的建议.

我怀疑虽然服务总线看起来更强大,但我的用例实际上只是让Web/Worker角色能够相互通信,Azure Queue Service就是我所追求的.但是我真的在寻找确认之前,然后自己进入角落:-)

提前致谢.

UPDATE

在休息时间读了两个系统.它看起来像.NET服务总线更专门用于集成系统,而不是提供通用的可靠消息系统.Azure队列是分布式的,因此可靠且可扩展,其中.NSB队列不是,因此更适合Azure本身托管的代码.

谢谢你的回复.

azure azure-storage-queues azure-servicebus-queues

30
推荐指数
2
解决办法
2万
查看次数

在Azure队列存储中传递对象消息

我正在尝试找到一种将对象传递给Azure队列的方法.我找不到办法做到这一点.

正如我所见,我可以传递字符串或字节数组,这对于传递对象来说并不是很舒服.

无论如何都要将自定义对象传递给队列?

谢谢!

c# azure azure-storage-queues

27
推荐指数
3
解决办法
2万
查看次数

WebJob QueueTrigger如何触发,轮询或事件?

public static void ProcessMessage([QueueTrigger("queue")] string message, TextWriter log)
{
    //processing message
}
Run Code Online (Sandbox Code Playgroud)

这个方法究竟是如何触发的.

WebJob主机是否只是对存储队列进行轮询.或存储队列引发新的消息事件,该主机订阅?

.net azure azure-storage-queues

17
推荐指数
1
解决办法
9630
查看次数

Webjobs会自动续订Azure Queue消息的租约吗?

当Webjobs通过QueueTrigger从Azure存储上的队列中获取消息时,它会租用该消息(使其不可见).如果(webjob的)触发功能需要很长时间来处理消息,这个租约是否会自动扩展?或者我应该在功能中处理?

在此链接Windows Azure队列:改进租约,进度跟踪和未来工作的调度,作者声明" 消息的租约可以由执行原始出列的工作人员扩展,以便它可以继续处理消息 "

注意:我尝试了一个等待20分钟的webjob(带有QueueTrigger).

//Write Log
Thread.Sleep(1200000);
//Write Log
Run Code Online (Sandbox Code Playgroud)

它成功完成.在此期间,没有其他webjob实例尝试尝试相同的队列项(它没有变得可见).因此,似乎存在租赁的自动更新机制.无论如何,我正在等待微软员工的回答或官方链接(msdn,azure,...).

c# azure azure-storage-queues azure-webjobs

13
推荐指数
1
解决办法
1195
查看次数

Azure队列 - 我可以验证邮件只读一次吗?

我正在使用Azure队列,并从队列中读取几个不同的进程.
我的系统构建方式假定每条消息只读一次.
这篇Microsoft文章声称Azure队列至少有一次传递保证,这可能意味着两个进程可以从队列中读取相同的消息.
StackOverflow线程声称,如果我使用GetMessage,则该消息对于隐身超时的所有其他进程变得不可见.

假设我使用GetMessage()并且在DeleteMessage之前从不超过消息不可见时间,我可以假设我只会获得每条消息一次吗?

azure azure-storage azure-storage-queues

11
推荐指数
2
解决办法
6222
查看次数

为什么Azure存储队列上的ApproximateMessageCount属性可以为空?

标题几乎解释了我的问题:

如果存储队列中没有消息,为什么它不能只返回0,假设我们能够获得队列引用并建立连接?相反,它返回null.

是否与邮件计数是"近似"这一事实有关?好奇,比什么都重要.

azure-storage azure-storage-queues

10
推荐指数
1
解决办法
1481
查看次数

Azure功能和存储队列,如果功能失败该怎么办

我正在制定一个向Azure存储队列发布消息的方案.出于测试目的,我开发了一个控制台应用程序,我收到消息,我可以通过尝试计数更新它,当逻辑完成后,我删除了消息.

现在我正在尝试将我的代码移植到Azure功能.有一点似乎是非常不同的是,当调用Azure函数时,消息将从队列中删除.

我发现很难找到关于这个特定主题的任何文档,我觉得我错过了关于将这两者结合起来的概念.

我的问题:

  1. 我是对的,当你在一个新的队列项上触发一个函数时,该函数接收消息并将其从队列中删除,即使该函数失败了吗?
  2. 如果1是正确的,那么如何确保重试该消息并将其发布到死队列以供以后处理?

azure azure-storage-queues azure-functions

10
推荐指数
1
解决办法
5359
查看次数

Azure存储队列消息(在特定时间显示)

如何向Azure队列存储添加消息,该消息将在明天(24小时后)显示在队列中?

azure-storage azure-storage-queues

8
推荐指数
1
解决办法
5418
查看次数

Azure队列消息优先级

我在Azure存储中有一个队列,例如'messages'.每隔1小时,一些服务会向此队列推送一些应该更新数据的消息.但是,在某些情况下,我也从另一个地方推送到此队列消息,我希望此消息立即进行,我无法为此消息设置优先级.

这个问题的最佳解决方案是什么?我可以使用两个不同的队列("消息"和"消息优先级"),还是一个糟糕的方法?

azure azure-storage-queues

8
推荐指数
1
解决办法
3443
查看次数

在Azure Webjobs SDK中设置nextVisibleTime

我正在使用Azure Webjobs处理队列中的消息.

我看到Webjobs SDK在10分钟后再次处理任何失败的消息,如果失败5次,它会将其移动到毒性队列(1).

此外,我可以看到队列中消息的nextVisibleTime,即插入时间(2)后10分钟.

我想使用AzureSDK错误处理消息,但我不能等待10分钟再次处理消息.

有什么方法可以将nextVisibleTime设置为几秒钟吗?

在Azure应用服务中创建.NET WebJob

如果方法在完成之前失败,则不删除队列消息; 在10分钟的租约到期后,该消息将被释放以便再次接收并处理.

如何使用WebJobs SDK使用Azure队列存储

public static void WriteLog([QueueTrigger("logqueue")] string logMessage,
    DateTimeOffset expirationTime,
    DateTimeOffset insertionTime,
    DateTimeOffset nextVisibleTime,
Run Code Online (Sandbox Code Playgroud)

注意:StackOverflow中有类似的问题,但没有答案:

azure-storage-queues azure-webjobs azure-webjobssdk

8
推荐指数
2
解决办法
1201
查看次数