我正在尝试找到一种将对象传递给Azure队列的方法.我找不到办法做到这一点.
正如我所见,我可以传递字符串或字节数组,这对于传递对象来说并不是很舒服.
无论如何都要将自定义对象传递给队列?
谢谢!
为什么在运行我使用Azure SDK 1.3的网站时,它会打开两个浏览器窗口(或选项卡),尽管事实上我只定义了一个端点:
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
</Sites>
Run Code Online (Sandbox Code Playgroud)
当我从Visual Studio运行(使用F5)我的Azure应用程序时,我只需要显示一个浏览器窗口?
场景:
如果我使用多个线程分离多个Worker角色或ONE Worker角色,这将轮询Azure Queue中的新消息.
有人可以确认这是否是正确的设计方法?我想拥有许多工作者角色的原因是为了加速PROCESSJOB.我们的应用程序应该接近实时,即只要有消息我们应该得到,应用复杂的业务规则并提交到AZURE DB.我们预计每3分钟会收到11,000封邮件.
谢谢.
我正在从网络角色向辅助角色发送消息。早些时候,这些消息被正确且立即地接收到,但是现在,尽管所有消息的内容都相同,但现在却突然没有收到某些消息。就像如果我现在发送一条消息,它没有收到,但之后如果我发送另一条消息,则会收到最新的一条消息。之前没有收到的消息会在几秒钟后突然收到,或者有时会因为生存时间已过期而变成死信消息。
我无法弄清楚问题出在哪里,有什么想法吗?或者这种行为对于服务总线来说是正常的吗?
这就是我以工作者角色接收消息的方式
编辑:
public override void Run()
{
while (!IsStopped)
{
try
{
if (BroadcastReceived)
{
BroadcastReceived = false;
// Receive the message from Web Role to upload the broadcast to queue
BroadcastClient.BeginReceive(OnWebRoleMessageReceived, null);
}
if (SignalRMessageReceived)
{
SignalRMessageReceived = false;
// Receive the message from SignalR BroadcastHub
SignalRClient.BeginReceive(OnSignalRMessageReceived, null);
}
if (SignalRFirstTimeMessageReceived)
{
SignalRFirstTimeMessageReceived = false;
// Receive the message from SignalR BroadcastHub
SignalRFirstTimeClient.BeginReceive(OnSignalRFirstTimeMessageReceived, null);
}
}
}
public void OnWebRoleMessageReceived(IAsyncResult iar)
{
BrokeredMessage receivedBroadcastMessage = null;
receivedBroadcastMessage …
Run Code Online (Sandbox Code Playgroud) 我的项目的一部分是用C++编写的工作者应用程序,在Linux上运行.我发现MS不提供C++版本的Windows Azure SDK.我需要访问Windows Azure存储队列.
是否有SDK的C++端口?有没有机会使用其他语言的SDK(即python,node.js)?或者最好的选择是使用REST API?
我有一个托管4个MVC 4站点的Web角色.其中一个站点(从现在开始称之为API站点)使用MVC和Web API.当我升级Web角色时,API站点中的Web API控制器会向所有请求返回500内部服务器错误.MVC控制器按预期工作,我知道请求至少要达到global.asax的Application_BeginRequest方法.我在Elmah日志中没有看到任何记录.我遇到的任何错误的唯一提示是事件日志中的以下内容:
属于站点"1"的应用程序"/"具有无效的AppPoolId"DefaultAppPool"集.因此,应用程序将被忽略.
由于Web角色使用带有guid作为标识符的App Pool,我不知道它来自何处.
最令人困惑的是,一旦我为API站点(这是一个guid)回收应用程序池,一切都开始正常工作.
我已经尝试将应用程序池重新命名为角色的启动任务的一部分,但这似乎没有任何区别.
有关如何使Web API正确启动的任何建议?
我已经看到大多数队列示例作为轮询机制.是否可以将其更改为队列的列表.因为轮询可能会影响工人的表现.
我正在使用服务总线来连接Web角色和worker角色.我的worker角色处于连续循环中,我收到了Web角色使用QueueClient.Receive()方法发送的消息.
但是使用此方法,如果服务总线队列上没有消息,它将等待几秒钟来接收消息,而不是移动到下一行以进一步执行.我希望有一些接收消息的异步方法?或者至少某种方式设置这个等待时间?
我发现从MSDN文档此BeginReceive方法 QueueClient 和我希望这将是回答我的问题,但我不知道如何使用此方法.方法参数是异步回调和对象状态,我不知道它们是什么.
有任何想法吗?
更新: 由于Sandrino的一个很好的解决方案,它的工作是异步的.但异步现在给了我一些问题.我的VS崩溃了.不确定是什么问题.以下是我正在使用的代码.
工人角色:
public override void Run()
{
while (!IsStopped)
{
// Receive the message from Web Role to upload the broadcast to queue
BroadcastClient.BeginReceive(OnWebRoleMessageReceived, null);
// Receive the message from SignalR BroadcastHub
SignalRClient.BeginReceive(OnSignalRMessageReceived, null);
}
}
public void OnWebRoleMessageReceived(IAsyncResult iar)
{
BrokeredMessage receivedBroadcastMessage = null;
receivedBroadcastMessage = BroadcastClient.EndReceive(iar);
if (receivedBroadcastMessage != null)
{ //process message
receivedBroadcastMessage.Complete();
}
}
public void OnSignalRMessageReceived(IAsyncResult iar)
{
BrokeredMessage receivedSignalRMessage = null;
receivedSignalRMessage = SignalRClient.EndReceive(iar);
if (receivedSignalRMessage != …
Run Code Online (Sandbox Code Playgroud) 这是一个理论问题:
当我使用消息队列构建应用程序时,我将需要多个队列支持不同的数据类型以用于不同的目的。假设我有 20 个队列(例如,一个用于创建新用户,一个用于处理新订单,一个用于编辑用户设置等)。
我将使用“最少”1 个 Web 角色和 1 个辅助角色将其部署到 Windows Azure。
如何以正确的方式从所有这 20 个队列中读取数据?这就是我的想法,但我对此几乎没有或没有现实世界的实践经验:
创建一个在辅助角色“main”类中产生 20 个线程的类。让这些线程中的每一个都执行一个方法来轮询不同的队列,并让所有这些线程在每次轮询之间休眠(当然还有增加休眠时间的回退机制)。
这导致有 20 个线程(或 21 个?)和 20 个正在主动轮询的队列,从而导致大量消息浪费(每次轮询空队列时,它都被计为消息)。
你怎么解决这个问题?
message-queue azure azure-storage-queues azure-servicebus-queues
我的问题有两个部分,我知道它们是基本部分,但是无法清除想法,所以发布这个.
我们计划在windows azure上构建一个新的应用程序.在阅读了一些关于云的文章后,我在云上构建了一个示例应用程序,它执行CRUD等基本操作.
所以我想知道在使用azure app时你们所感受到的所有根本区别.我使用MVC作为框架构建了应用程序.在使用MVC和使用MVC的云应用程序在普通Web应用程序中编写代码方面,我没有太大的区别.构建云应用程序时的待办事项是什么?
我们计划聘请一些有使用Windows azure经验的人,市场上有几个猎头用大量的简历轰炸你.虽然人们没有在窗户上工作,但他们刚刚收到了简历.如何评估候选人判断他在云计算方面的潜力.任何提示都会有所帮助.
azure ×10
c# ×4
asp.net ×3
asp.net-mvc ×1
azure-queues ×1
c++ ×1
cloud ×1
iis ×1
linux ×1
sdk ×1
servicebus ×1