连接处于非活动状态的时间超过允许的 60000 毫秒,并被容器关闭

发布于 2025-01-16 21:07:42 字数 1807 浏览 3 评论 0原文

我有一个天蓝色的函数,可以将消息发送到服务总线队列。自从最近的部署以来,我经常看到异常发生:连接处于非活动状态的时间超过允许的 60000 毫秒,并被容器关闭。

输入图片此处描述

我查看了此 GitHub 帖子:https://github.com/Azure/azure-service-bus-java/issues/280 它说这是一个警告。有没有办法增加这个超时时间?或者对如何解决这个问题有什么建议?这是我的代码:


namespace Repositories.ServiceBusQueue
{
    public class MembershipServiceBusRepository : IMembershipServiceBusRepository
    {
        private readonly QueueClient _queueClient;
        public MembershipServiceBusRepository(string serviceBusNamespacePrefix, string queueName)
        {
            var msiTokenProvider = TokenProvider.CreateManagedIdentityTokenProvider();
            _queueClient = new QueueClient($"https://{serviceBusNamespacePrefix}.servicebus.windows.net", queueName, msiTokenProvider);
        }
        public async Task SendMembership(GroupMembership groupMembership, string sentFrom = "")
        {
            if (groupMembership.SyncJobPartitionKey == null) { throw new ArgumentNullException("SyncJobPartitionKey must be set."); }
            if (groupMembership.SyncJobRowKey == null) { throw new ArgumentNullException("SyncJobRowKey must be set."); }
            foreach (var message in groupMembership.Split().Select(x => new Message
            {
                Body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(x)),
                SessionId = groupMembership.RunId.ToString(),
                ContentType = "application/json",
                Label = sentFrom
            }))
            {
                await _queueClient.SendAsync(message);
            }
        }
    }
}

I have an azure function that sends a message to the service bus queue. Since a recent deployment, I see an exception occurring frequently: The connection was inactive for more than the allowed 60000 milliseconds and is closed by container.

enter image description here

I looked into this GitHub post: https://github.com/Azure/azure-service-bus-java/issues/280 it says this is a warning. Is there a way to increase this timeout? Or any suggestions on how to resolve this? Here is my code:


namespace Repositories.ServiceBusQueue
{
    public class MembershipServiceBusRepository : IMembershipServiceBusRepository
    {
        private readonly QueueClient _queueClient;
        public MembershipServiceBusRepository(string serviceBusNamespacePrefix, string queueName)
        {
            var msiTokenProvider = TokenProvider.CreateManagedIdentityTokenProvider();
            _queueClient = new QueueClient(
quot;https://{serviceBusNamespacePrefix}.servicebus.windows.net", queueName, msiTokenProvider);
        }
        public async Task SendMembership(GroupMembership groupMembership, string sentFrom = "")
        {
            if (groupMembership.SyncJobPartitionKey == null) { throw new ArgumentNullException("SyncJobPartitionKey must be set."); }
            if (groupMembership.SyncJobRowKey == null) { throw new ArgumentNullException("SyncJobRowKey must be set."); }
            foreach (var message in groupMembership.Split().Select(x => new Message
            {
                Body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(x)),
                SessionId = groupMembership.RunId.ToString(),
                ContentType = "application/json",
                Label = sentFrom
            }))
            {
                await _queueClient.SendAsync(message);
            }
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稚然 2025-01-23 21:07:42

这可能是由于线程池中的死锁造成的,请检查您是否从同步方法调用异步方法。

This could be due to deadlock in the thread pool, please check if you are calling an async method from a sync method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文