0

Je voudrais créer un système qui "ajoute" les mails les uns aux autres. Situation: Chaque fois qu'une entité est modifiée, je souhaite envoyer un mail aux abonnés de cette entité.Retarder la file d'attente pour la quantité de temps par session

Mais lorsque l'entité est changée 10 fois sur un petit temps (comme 5/10 minutes) les abonnés n'ont pas besoin d'être spammés avec des courriels. Je pensais donc à créer une 'file d'attente'. Et pour être plus précis, je pensais à utiliser le Azure Servicebus.

Après avoir recherché une partie de la documentation. J'ai trouvé deux propriétés intéressantes.

  • SessionId => Ce serait l'entité de l'Id
  • BatchFlushInterval (de batching côté client)

« Si le client envoie des messages supplémentaires au cours de cette période, il transmet les messages dans un lot unique '

Cela sonnait parfait. De cette façon, je reçois tous les «changements de l'entité» dans un seul lot. Et pourrait construire un seul e-mail à envoyer.

Mais je ne trouve plus cette option dans le nouveau "Azure Service Bus NuGet".

Maintenant que j'ai cherché des alternatives, j'ai le sentiment que ce n'est pas une pratique «normale».

Est-ce que quelqu'un a de l'expérience dans ce domaine? Je voudrais éviter d'avoir à utiliser un travail cron. Mais si c'est la meilleure solution, faites le moi savoir. Je sais que c'est une question très vaste et plus un «besoin d'information». Donc, commenter avec des liens peut déjà me rendre vraiment heureux.

Merci à l'avance Brecht

+1

Je n'ai pas utilisé cette propriété batched retardée d'ASB ou le paquet nuget votre référencé. J'utilise la propriété https://www.nuget.org/packages/WindowsAzure.ServiceBus/ standard et la propriété BatchFlushInterval y est disponible, par exemple en tant que paramètre lors de l'instanciation d'une fabrique de messagerie. –

Répondre

1

ne pense pas Message Sessions ou BatchFlushInterval est l'approche à prendre ici. Ce que vous cherchez est de tamponner les messages pour créer une seule notification plutôt que plusieurs. Je vais personnellement avec receiving a batch à partir du bus de service Azure et traiter le lot pour «ajouter» des notifications.