0
私は.NET Coreアプリケーション(キューへの公開は他のアプリケーションを経由します)でRabbitClientをキューリーダーシングルトンとして使用しています。そして私のアプリケーションが待ち行列からの読み込みをしばらくしてから問題に直面しています。メッセージのキューがいっぱいになるのを見ると、私はますますプッシュしますが、リーダーアプリは再起動するまで読んでいません。 RabbitClientのコードは次のとおりです。RabbitMQ EventingBasicConsumerはメッセージの受信を停止します
private readonly IConnection _connection;
public RabbitClient(IMessagingConfiguration configuration)
{
IConnectionFactory connectionFactory = new ConnectionFactory { Uri = _configuration.ConnectionString };
_connection = connectionFactory.CreateConnection();
}
public void OnMessageAsync<T>(Func<T, Task> callback) where T : class
{
T result;
var queueName = _configuration.QueueName;
var channel = _connection.CreateModel();
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, args) =>
{
var json = Encoding.UTF8.GetString(args.Body);
result = JsonConvert.DeserializeObject<T>(json);
callback(result).GetAwaiter().GetResult();
channel.BasicAck(args.DeliveryTag, false);
};
channel.BasicConsume(queue: queueName, noAck: false, consumer: consumer);
}
このようなストップなしで読書を続行するにはどうすればよいですか?
、あなたの消費者の滞在は、RabbitMQのサーバに接続されていますか?これはRabbitMQ管理UIで確認できます –
RabbitMQと.NETクライアントのどのバージョンを使用していますか?これについては、[GitHub issues](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/275)を検索しましたか? –