Wie implementiere ich einen Mechanismus, der eine Nachricht nach einigen konfigurierbaren Wiederholungsversuchen zurückweist?
Mit anderen Worten, wenn ich eine Warteschlange abonniere, möchte ich garantieren, dass die gleiche Nachricht nicht mehr als X mal erneut gesendet wird.
Mein Codebeispiel:
%Vor%Meiner Meinung nach ist die beste Lösung, diese Fehler in Ihrer Anwendung zu behandeln und sie abzulehnen, wenn die App entschieden hat, dass sie die Nachricht nicht verarbeiten kann.
Wenn Sie keine Informationen verlieren möchten, sollte die App die Nachricht nur ablehnen, nachdem sie dieselbe Nachricht an eine Fehlerwarteschlange gesendet hat.
Code wurde nicht getestet:
%Vor% Eine mögliche Lösung besteht darin, die Nachricht mit einer Art von Hash-Funktion zu hashen, die Sie definieren, und dann ein Cache-Objekt für diesen Hash zu überprüfen. Wenn es dort ist, fügen Sie eins zum Cache bis zum konfigurierbaren Maximum hinzu, und wenn es nicht dort ist, setzen Sie es auf 1. Hier ist ein schneller und schmutziger Prototyp für Sie (beachten Sie, dass das Objekt mcache
im Bereich für alle Abonnenten sein sollte) ):
Wenn die Nachricht eine GUID hat, können Sie diese einfach in der Hash-Funktion zurückgeben.