gpt4 book ai didi

c# - 服务总线 : Can't receive any message in first 15-20 sec, 然后就可以工作了

转载 作者:行者123 更新时间:2023-12-03 04:27:52 25 4
gpt4 key购买 nike

我通过服务总线发送 guid Id。一切正常,我的页面自动添加新的 Id。但是,每当我加载页面或刷新页面时,我都会有一段时间收不到任何消息。他们不知怎么地就凭空消失了。我检查了 azures 队列中的消息,但它显示为零,这意味着消息在这段时间内以某种方式从我下面的代码中泄漏了。

“死区时间”持续大约 15-20 秒,然后它工作得很好,直到我再次重新加载页面。

发件人:

 public void Post(Guid id) {
var connectionString = "X";
var queueName = "Send";

var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
var message = new BrokeredMessage(id);

client.Send(message);
}

接收者:

  public string GetMessage() {
var connectionString = "X";
var queueName = "Send";

var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
var message = client.Receive(TimeSpan.FromMinutes(1));

var getId = message?.GetBody<string>();
if (getId == null) { return null; }

message.Complete();

return getId;
}

Ajax/JQuery:

<script type="text/jscript">
var url = "/Home/GetMessage";
function getData () {
$.get(url, function (data) {
var div = $("<div>");
div.html(data);
$("#content").append(div);
getData();
});
}
getData();
</script>

知道如何解决这个问题吗?

最佳答案

我遇到了一个听起来很像这样的问题,我的解决方案是确保在调用 QueueClient.CreateFromConnectionString(...) 之前将 ConnectivityMode 设置为 HTTPS。您的问题可能是它尝试通过 TCP 连接,而 20 秒可能是由于它在尝试 HTTP/HTTPS 之前等待 TCP 连接失败。在连续调用中,它将使用 HTTP/HTTPS,但在初始客户端创建时,您会感受到这种痛苦。

试试这个:

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https;
var client = QueueClient.CreateFromConnectionString(connectionString, queueName);

如果它有效,请确保将设置 SystemConnectivity.Mode 的代码放在经过深思熟虑的位置,并以某种单例形式创建客户端。您不想一直创建新客户。

关于c# - 服务总线 : Can't receive any message in first 15-20 sec, 然后就可以工作了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41030943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com