Nella mia applicazione di test posso vedere i messaggi che sono stati elaborati con un'eccezione che viene automaticamente inserita nell'EasyNetQ_Default_Error_Queue predefinito, che è ottima. Posso quindi eseguire correttamente il dump o l'accodamento di questi messaggi utilizzando Hosepipe, che funziona anche bene, ma richiede il passaggio alla riga di comando e la chiamata sia a Hosepipe che all'API RabbitMQ per eliminare la coda dei messaggi riprovati.C'è un modo semplice per iscriversi alla coda degli errori di default in EasyNetQ?
così sto pensando l'approccio più semplice per la mia domanda è quello di iscriversi semplicemente alla coda di errore, così posso ri-processo utilizzando la stessa infrastruttura. Ma in EastNetQ, la coda di errore sembra essere speciale. Abbiamo bisogno di iscriversi utilizzando un tipo corretto e instradamento ID, quindi non sono sicuro di cosa questi valori dovrebbero essere per la coda di errore:
bus.Subscribe<WhatShouldThisBe>("and-this", ReprocessErrorMessage);
Posso usare il semplice API per iscriversi alla coda di errore, o devo scavare nel advanced API?
Se il tipo del mio messaggio originale era TestMessage
, quindi mi piacerebbe essere in grado di fare qualcosa del genere:
bus.Subscribe<ErrorMessage<TestMessage>>("???", ReprocessErrorMessage);
dove ErrorMessage
è una classe fornita da EasyNetQ per avvolgere tutti gli errori. È possibile?
Grazie per il vostro aiuto Mike. Pensi che sarebbe una buona idea esporre un involucro amichevole per questo? Per impostazione predefinita, la semplice API scrive in questa coda di errore, quindi per me ha senso avere un meccanismo per consumare in modo trasparente anche questi errori. Anche con il tuo codice qui sopra, penso di aver bisogno di avere qualche tipo di istruzione switch nel gestore dei messaggi di errore ('switch (error.BasicProperties.Type)'), che poi mi permetterà di deserializzare il messaggio originale nel tipo corretto, che è un po 'brutto. Sarebbe bello se potessi iscrivermi al tipo specifico di errore a cui sono interessato. –
BTW Adoro la libreria EastNetQ. Grazie per il tuo duro lavoro e l'ottima documentazione. –
Grazie per le belle parole! Ho aggiunto il tuo suggerimento alla lista dei problemi https://github.com/mikehadlow/EasyNetQ/issues/71 ma non ne sono completamente convinto. –