Comment puis-je implémenter des files d'attente de traitement en arrière-plan dans mon application Web ASP.NET MVC? Alors que la plupart des changements de données, mises à jour etc. doivent être visibles immédiatement, il y a d'autres mises à jour qui n'ont pas besoin de traitement en temps réel que je voudrais passer à un processus de fond de moindre priorité qui s'en chargera à son propre rythme . Par exemple, prenez le système d'attribution de badges de StackOverflow. Habituellement, vous pouvez prendre une action spécifique qui vous donnerait un badge, mais la «récompense» réelle arrive plus tard (généralement entre 10 minutes et quelques heures plus tard). Je suppose que cela se fait via un processus d'arrière-plan distinct, car il n'est pas essentiel pour les travaux de SO d'attribuer des badges immédiatement lorsqu'ils sont gagnés. Donc, j'essaie de créer une sorte de système de files d'attente dans lequel je pourrais bourrer des tâches (dire n'importe quoi implémentant l'interface ITask qui aura une méthode Process()) qui sera finalement exécutée par un processus séparé.Traitement en arrière-plan basé sur une file d'attente dans une application Web ASP.NET MVC
Comment procéder pour mettre en place un tel système? Idées/Indice/Code d'échantillon?
Merci!
Avez-vous un exemple sur la façon d'abord « connecter » une application de service avec un MSMQ, puis à ASP.NET MVC? C'est assez nouveau pour moi. Je vous remercie! – Alex
Vous venez d'écrire dans la file d'attente appropriée. Votre service appellera .Receive et votre page, que vous voulez envoyer un message à la file d'attente, appellera simplement '.Send'. Je vais mettre à jour avec un petit exemple. –
Mis à jour. Remarque: Je n'ai pas montré le code pour créer la file d'attente, si elle n'existe pas. Mais cela peut être trivialement trouvé juste en prenant un comme à l'API System.Messaging. Plus précisément: MessageQueue.Create (...). Notez que vous devrez également obtenir les autorisations appropriées. (.SetPermissions). –