2011-10-17 5 views
1

Je dois implémenter un mécanisme de pulsation qui envoie un message "touch" à un service externe toutes les X secondes pour maintenir la session active, si aucun autre message n'est envoyé au service. J'ai regardé en utilisant des choses comme ScheduledExecutorService ou Timer mais je dois trouver quelque chose où je peux réinitialiser le temporisateur/délai quand d'autres messages sont envoyés sur la session afin que je n'envoie pas de battements de coeur quand ils ne sont pas requis. Y a-t-il des cadres connus pour ce type de mécanisme de battement de cœur, car cela semblerait être une fonctionnalité de battement de cœur régulier? Ou, quelqu'un peut-il me diriger dans la bonne direction pour créer une solution efficace pour mon problème basé sur des composants standard?Java Heartbeat framework

+1

Cela semble trop spécifique pour qu'il y ait un framework existant. De plus, il semble que votre tâche n'est pas si difficile - je reconsidérerais en utilisant un 'Timer' pour appeler un service externe - vous pouvez le faire fonctionner et il a une méthode' reset'. –

+0

Ne suffirait-il pas d'ignorer le signal de présence pour une invocation de temporisation donnée s'il y a eu une activité depuis la dernière fois? Ou, quel mal y a-t-il à envoyer des messages de battement de cœur supplémentaires? Mon instinct me dit que vous introduiriez plus de frais généraux en effectuant une synchronisation correcte pour communiquer avec la minuterie que les battements de coeur supplémentaires pourraient causer. – millimoose

Répondre

0

La façon la plus simple que j'ai pu voir est d'écrire les vôtres. Créez un objet qui peut envoyer le message 'touch', puis créez un démon pour le faire en continu. Tout cela devrait être possible avec les POJO et les classes Thread et Process. Bonne chance!

+0

Yup, est allé avec un 'ScheduledExecutorService' et mis en œuvre une méthode' reset' qui réinitialise le délai à la prochaine pulsation. Merci pour toutes vos suggestions et commentaires. – hgus1294