J'ai une webapp en cours d'exécution sur mon serveur, ce qui fait un peu équilibre mise à jour. Une fois que le solde est mis à jour, je dois vérifier si le solde est inférieur à 5000. Dans le cas, le solde descend en dessous de 5000, je envoyer un e-mail d'alerte. Le point à noter ici est que, je dois envoyer l'alerte qu'une seule fois dans une journée, alerte ne devrait pas continuer à chaque fois que le solde est inférieur à 5000. je crois, je devrais utiliser un singleton pour envoyer le courrier, mais Je ne suis pas sûr de savoir comment l'utiliser. Le programme quand voit le équilibre passe en dessous de 5000, devrait appeler la classe singleton qui aura la fonction d'envoyer une alerte, mais comment vous assurez-vous que le programme ne sera pas appeler à nouveau cette fonction lorsque le solde descend? Quelqu'un peut-il me guider à ce sujet?Email en utilisant un singleton
Répondre
Il y a deux choses distinctes dont vous avez besoin penser :
- Service d'envoi de courrier électronique.
Plusieurs façons de le mettre en œuvre. Oui, il pourrait être Singleton, mais il pourrait aussi être un simple service Java. Si vous utilisez Spring, alors ils ont des implémentations prédéfinies très simples et utiles. Voici un example.
- Votre logique de balance de vérification.
dépend de ce que vous avez vraiment besoin.Si vous avez besoin de vérifier chaque mise à jour du bilan, mais pas d'envoyer des alertes plus qu'une fois par jour, alors ce sera quelque chose comme:
private Date lastAlertDate;
private static final BALANCE_LIMIT = 5000;
private void handleBalanceUpdated(long balance) {
if (balance < 5000) {
log.info("Balance has gone below {}", BALANCE_LIMIT);
int daysDifference = getDifferenceInDays(lastAlertDate, new Date());
if (daysDifference >= 1) {
log.info("Last alert was {} days ago, going to send email alert", daysDifference);
alertService.sendSimpleAlert("Balance has gone below " + BALANCE_LIMIT + "!");
lastAlertDate = new Date();
}
}
}
Merci pour cette suggestion, mais cela signifie qu'après chaque alerte, je dois mettre à jour la base de données avec lastAlertDate. Pourrais-je essayer d'utiliser Singleton ici d'une certaine manière? – Akshay
Cela dépend du type de composant que vous utilisez pour ce "vérificateur". Il peut simplement «vivre» dans la mémoire de votre système (par exemple, en tant qu'auditeur) et stocker la référence à la date la plus récente. Vous n'avez pas besoin de DB dans ce cas. – udalmik
Singleton est un modèle de conception qui fait en sorte qu'une seule instance d'un objet est créé.
Cela ne semble pas avoir quelque chose à voir avec ce dont vous avez besoin, vous pouvez ajouter un drapeau dans votre base de données comme alert_sent=true/false
et le mettre à jour en conséquence.
singleton pattern est un modèle de conception qui limite l'instanciation d'une classe à un objet. C'est utile quand exactement un objet est nécessaire pour coordonner les actions à travers le système.
Mais pour vos besoins, je ne sais pas, cela peut aider. Peut-être que vous pouvez utiliser un concept de drapeau. Et le drapeau devrait être effacé tous les jours.
Vous n'avez pas besoin de modèles de conception "spéciaux" ici. Par exemple, vous pouvez stocker la date à laquelle la dernière notification par courriel a été envoyé, comme:
Date lastEmail = ... // last email date
Et lorsque vous essayez d'envoyer un courriel chekc la condition:
If(...) // lastEmail is before current day
{ //send emal and update lastEmail }
- 1. Comment rejeter un email en utilisant mailgun?
- 2. envoyer un email en utilisant RoR
- 3. Envoyer un email en utilisant sendgird
- 4. Comment envoyer un email en utilisant C#?
- 5. envoyez un email en utilisant php
- 6. Envoyer un email automatiquement en utilisant C#
- 7. erreurs en utilisant Django Email
- 8. Email Validation en utilisant MX
- 9. Email Problème en utilisant MailHelper.cs
- 10. Comment ajouter un UIImage à un email en utilisant MFMailComposerViewController?
- 11. Envoyer un email en utilisant un formulaire de contact php
- 12. faire un objet singleton en utilisant xml dans android
- 13. Comment attacher un fichier à un email HTML en utilisant Apache Commons Email
- 14. email SMTP sur Windows en utilisant C++
- 15. Email Client utilisant Spring
- 16. Comment envoyer un email depuis android en utilisant java mail
- 17. Comment envoyer un email en utilisant smtp dans zf2?
- 18. comment envoyer un courriel en utilisant le composant email cakephp?
- 19. Comment renvoyer un email en utilisant SendAsync() dans asp.net
- 20. Comment envoyer un email en utilisant le framework cakephp?
- 21. Comment valider un email en utilisant Kohana 3.1 ORM
- 22. Envoyer un email en utilisant le serveur Exchange SEULEMENT
- 23. Accéder à un utilisateur email en utilisant toolkit facebook
- 24. Comment envoyer un Email en utilisant notre propre API?
- 25. comment envoyer un email avec pièce jointe en utilisant servlet?
- 26. Composer mais pas envoyer un email en utilisant PHP
- 27. envoyez un email en utilisant gmail smtp C#
- 28. Envoyer un email depuis vmware sandbox en utilisant tomcat
- 29. Comment envoyer un email en utilisant javascript ou jquery
- 30. Comment envoyer un email en utilisant php via wamp?
S'il vous plaît essayer quelque chose en utilisant ci-dessous les réponses et si vous rencontrez un problème, essayez d'obtenir de l'aide ... .... – sunleo