J'ai un site web et un webjob, où le site est un client oneway et le webjob est worker. J'utilise le transport Azure ServiceBus pour la file d'attente.Rebus - Envoi d'un message différé à une autre file d'attente (Azure ServiceBus)
je reçois l'erreur suivante:
InvalidOperationException: Cannot use ourselves as timeout manager because we're a one-way client
lorsque je tente d'envoyer Bus.Defer du bus de site Web.
Étant donné qu'Azure Servicebus prend en charge la gestion de timeoutmanager, cet événement de travail ne devrait-il pas provenir d'un client Oneway? La documentation sur Bus.Defer indique: Defers la livraison du message en y attachant un en-tête et en le livrant au point de terminaison du gestionnaire de délai d'attente configuré /// (par défaut nous-mêmes). Lorsque le moment est venu, le message différé est renvoyé à l'adresse indiquée par l'en-tête «
ce que je pourrais résoudre ce problème en réglant le returnaddress comme ceci:.
headers.Add(Rebus.Messages.Headers.ReturnAddress, "webjob-worker");
Est-ce une fonctionnalité qui pourrait être ajoutée à Rebus? Si oui, est-ce que je devrais créer un problème au dépôt de GitHub? –
Eh bien, j'ai pensé à cela - mais alors je doutais de l'endroit où il devrait être ajouté, et je me demandais aussi comment l'appeler ..... pour l'instant, je vous suggère de l'ajouter en créant une méthode d'extension sur 'IBus' qui accepte la file d'attente de destination en tant qu'argument – mookid8000