Non pas qu'il ne soit pas facile (ou amusant) d'en écrire un, il est logique de ne pas réinventer la roue pour ainsi dire. J'ai jeté un coup d'oeil autour de diverses tentatives, mais je ne semble pas avoir encore rencontré une implémentation qui supporte ces critères;Existe-t-il une bonne implémentation de File d'attente MongoDB pour le pilote C#?
Système OSS à file d'attente simple avec persistance MongoDB;
- C# Driver (officiel) basé (si plein de sérialisation POCO)
- curseurs tailable plutôt que l'interrogation
- poignées délai d'attente de messages (correctement GC)
- gère l'échec des consommateurs (crash idéalement détection re-insertion, mais avec délai d'attente retardée réinsertion est fine) si findAndModify sur complète
- plusieurs écrivains, plusieurs consommateurs
- threadsafe
Agréable à avoir;
- permet de (dernier seulement) message (remplacer les anciens messages dans le Q)
Si quelqu'un a une bibliothèque simple et agréable comme flottant autour sur GitHub que je ne l'ai pas encore trouvé, s'il vous plaît parler en haut!
En fait, vous avez probablement raison. Polling vs Tailing est un compromis relativement petit si vous voulez plusieurs lecteurs. Pour de nombreuses implémentations, même si un seul lecteur est probablement la bonne architecture dans tous les cas, il suffit de s'assurer que le processus de lecture est recyclé en cas d'erreur. Probablement une bonne chose d'utiliser des messages idempotents (permet une sémantique au moins une fois) et d'utiliser un timeout de message probablement combiné avec un processus de recyclage et un nombre de tentatives de message. – cirrus