Je suis un développeur web débutant assis sur un projet d'application web ambitieux.sql service broker question de fonctionnalité
Ainsi, après avoir fait quelques recherches, j'ai découvert SQL Service Broker. Il semble que quelque chose que je pourrais utiliser, mais je ne suis pas sûr. Puisque l'apprentissage exige que quelqu'un consacre beaucoup de temps, je voulais être sûr que cela correspondrait à mes besoins.
J'ai besoin de mettre en place un système où les utilisateurs du site peuvent soumettre un texte sur le site. Ce flux de messages doit être redondant et géré de manière FIFO, avec à l'autre bout du flux un autre groupe d'utilisateurs traitant les messages.
Maintenant, un message qui est lu par un de ce dernier groupe d'utilisateurs, doit être verrouillé afin que personne d'autre ne peut le lire en même temps. L'utilisateur peut alors décider de gérer le message ou non. Ce n'est que s'il décide de traiter le message qu'il peut être supprimé de la file d'attente. S'il décide qu'il ne veut pas traiter le message, le message doit être remis dans la file d'attente (à la fin de la file, ou au moins avec la plus haute priorité), afin qu'un autre utilisateur puisse le lire et décider .
Est-ce quelque chose que je pourrais implémenter avec SQL Service Broker? Suis-je sur la mauvaise piste?
Merci!
Pouvez-vous également expliquer pourquoi vous pensez que Service Broker peut vous aider avec ceci? Pour que les gens vous disent si vous êtes sur la bonne voie ou non, vous devez leur dire sur quelle piste vous êtes, pas seulement votre destination. ;-) – Tomalak
La façon dont je le comprends, tout système de mise en file d'attente pourrait m'aider avec cela. J'ai regardé les alternatives, et comme ils font tous fondamentalement la même chose, j'ai choisi SSB. FIFO, 1: 1 livraison de message, redondance, verrouillage, asynchronité, performances de charge lourde .. tout correspond à la facture. Je ne suis pas sûr qu'un message, une fois lu par un utilisateur, puisse être remis dans la file d'attente avec la plus haute priorité (comme si elle n'avait jamais été lue). Ai-je mal compris votre question? :) Je voudrais mettre en place un système de questions-réponses 1: 1 (humain). Si j'utilise un système de file d'attente de messagerie existant, je n'aurais pas à coder moi-même. –
«Remettre dans la file d'attente» signifierait essentiellement «renvoyer le message», ou ne pas le retirer de la file d'attente en jetant simplement un coup d'œil au lieu de recevoir. Comme la SSB assure la livraison des messages «dans l'ordre», je doute qu'il existe un moyen de «remettre un message» autre que de le mettre à nouveau en file d'attente, à la fin. Cela semble utile: http://www.simple-talk.com/sql/learn-sql-server/service-broker-foundations-workbench/ – Tomalak