Je suis en train de créer une sorte de système de file d'attente pour les travaux en arrière-plan avec MongoDB comme magasin de données. Comment puis-je "écouter" les insertions dans une collection MongoDB avant de créer des travailleurs pour traiter le travail ?
Dois-je interroger toutes les quelques secondes pour voir s'il y a des changements par rapport à la dernière fois, ou existe-t-il un moyen pour mon script d'attendre que les insertions se produisent ?
Il s'agit d'un projet PHP sur lequel je travaille, mais n'hésitez pas à répondre en Ruby ou dans un autre langage.
2 votes
Change Streams a été ajouté à MongoDB 3.6 pour répondre à votre scénario. docs.mongodb.com/manual/changeStreams De plus, si vous utilisez MongoDB Atlas, vous pouvez tirer parti des déclencheurs Stitch qui vous permettent d'exécuter des fonctions en réponse aux insertions/mises à jour/suppressions/etc. docs.mongodb.com/stitch/triggers/overview Il n'est plus nécessaire d'analyser l'oplog.