Je veux créer une file d'attente avec RabbitMq où je vais envoyer des messages d'un côté et recevoir dans une autre application. Je suis le faire avec le code suivant:Confondu par Masstransit ReceiveFrom méthode et le comportement du consommateur
return ServiceBusFactory.New(x =>
{
var uriString = string.Format(@"rabbitmq://{0}/{1}/{2}?prefetch={3}", host, virtualHost, queueName,
prefetch < 1 ? 1 : prefetch);
x.UseRabbitMq(r => r.ConfigureHost(new MessageUrn(uriString), h =>
{
h.SetUsername(user);
h.SetPassword(password);
h.SetRequestedHeartbeat(3);
}));
x.ReceiveFrom(uriString);
x.UseJsonSerializer<ServiceBusConfigurator>();
f(x);
});
MessageUrn uri et ReceiveFrom doivent avoir la même uri, sinon uri spécifié pour la méthode ReceiveFrom déterminer point final de bus. Mais cela signifie que mon éditeur est également consommateur de la même file d'attente. Lorsqu'il n'y a pas de récepteur, tous les messages sont placés dans la file d'attente queuename_error. Quand il y a un récepteur, tout semble aller bien.
Qu'est-ce que je fais mal? Je comprends pourquoi les messages vont dans la file d'attente d'erreurs - parce que l'éditeur n'est pas abonné à eux mais en même temps il est un consommateur, d'où la situation d'erreur . Est-il possible de récupérer des messages à partir de la file d'erreurs, lorsque le récepteur est (re) démarré?
masstransit est 2.10.0.0.
Merci d'avance.
Je vous suggère de mettre à jour masstransit vers la version <= 3.0.0, il a une meilleure API. Voici la documentation pour masstransit v3 et plus: http://masstransit-project.com/MassTransit/ –
Je ne peux pas utiliser les versions ultérieures. – Sharov