Question

Je suis un développeur Web débutant assis sur un projet d'application Web ambitieux.

Ainsi, après avoir effectué quelques recherches, j'ai découvert SQL Service Broker. Cela semble être quelque chose que je pourrais utiliser, mais je ne suis pas sûr. Etant donné que cela demande beaucoup de temps, je voulais être sûr que cela correspondrait à mes besoins.

Je dois mettre en place un système permettant aux utilisateurs de sites Web d'envoyer du texte au site Web. Ce flux de messages doit être redondant et traité de manière FIFO, avec à l’autre bout du flux un autre groupe d’utilisateurs traitant les messages.

Maintenant, un message en cours de lecture par l'un de ce dernier groupe d'utilisateurs doit être verrouillé afin que personne d'autre ne puisse 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 gérer le message que celui-ci 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 d'attente, ou du moins avec la priorité la plus élevée), 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!

Était-ce utile?

La solution

IMO, la meilleure utilisation de Service Broker est de se connecter à une application indépendante de manière faiblement couplée. Ce que je veux dire par là, c'est que les systèmes ainsi liés peuvent communiquer via un ensemble de types de messages convenus d'un commun accord. Ceci par opposition à une application manipulant directement la base de données de l'autre, par exemple.

D'après ce que vous avez dit, je le mettrais en œuvre sous forme de tableau simple, par exemple: Créez un tableau de messages avec une clé d'identité, un indicateur d'allocation et vos colonnes personnalisées. Lorsqu'un opérateur souhaite récupérer le dernier message, obtenez la valeur de PK la plus basse pour laquelle Allocation = 'N' et mettez à jour Allocation sur 'Y'. Ceci en une seule transaction. Lorsque / si l'opération décide de renvoyer le message en file d'attente, il suffit de définir AllocationFlag sur 'N' et son dos.

Ceci est juste un exemple. Dans ce cas, la base de données vous fournit une cohérence, des performances de charge élevée, etc.

Derrière les écrans, toutes les données que vous envoyez à SSB sont stockées et manipulées sous forme de tableaux. Il n’ya donc aucune raison pour qu’elles soient nécessairement plus rapides qu’une solution de base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top