NServiceBus ServiceInsight - 发布重试

时间:2013-10-09 13:23:02

标签: nservicebus serviceinsight

我正在尝试创建一个网页,其中包含一个尝试重试邮件的链接。

下面是一个试图重试特定消息的存根(R& D - 这是丑陋的,原谅我)调用。首先是我的网址是否正确?我从ServiceInsight中抓取了guid,当我在ServiceInsight中右键单击它时,它可以选择重试它。当我执行此代码时,返回成功并且没有有效负载,但是当我刷新ServiceInsight时,消息仍然存在。

您将提供的任何见解将不胜感激。另一方面,获得某种性质的返回值会很好。例如,如果消息已经成功处理了,在这种情况下,重试应该回复说它无法完成。例如,如果我右键单击ServiceInsight中状态列中有绿色图标的项目,则不会启用重试选项。

function DoPost(){
alert("start");

jQuery.support.cors = true;

$.post( "http://localhost:33333/api/errors/97db46a9-dd22-488d-8ec3-a24770bbxdcf/retry", 
    function(data) { alert(data); alert( "success" );})  
    .done(function() { alert( "done" );  })  
    .fail(function(xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); alert( "error" );  })  
    .always(function() { alert( "always" ); }   );

alert("end");

}

1 个答案:

答案 0 :(得分:1)

ServiceInsight仅允许重试此阶段失败的消息。稍后我们将为负载测试等内容添加发送消息(也是批量发送)。在带有绿色图标的邮件上禁用重试选项的原因是。

重试过程本质上是异步的,您触发请求并立即返回。稍后,当实际处理消息时,它可能会成功处理消息,或者可能再次失败,这可能最终会再次出现(可能是相同的)错误。您没有从重试中获得返回值的原因是我们在该阶段不知道它是否被处理。如果您的请求尚未处理,如果您收到消息列表,那么等待重试的特定消息将具有RetryIssued状态。

事实证明,服务控制(a.k.a Management API)不检查是否可以重试消息,它只是检查提供的消息Id是否存在。