Prise en Java pour dormir entre les boucles, le temps de sommeil désigné par ligne de commande sur Linux

J'ai été affecté à la conception d'un programme java sur une machine linux:

  1. Se connecte à une base de données
  2. lit un enregistrement
  3. récupérer certaines informations et de les envoyer à Nagios, en fonction d'un champ connu comme "threat_level'
  4. lire l'enregistrement suivant et répétez l'étape 3 jusqu'à ce que tous les enregistrements ont été lus

Maintenant, j'ai besoin d'obtenir ce à exécuter toutes les quelques minutes; donc ce que mon partenaire n'était de créer un script qui utilise une boucle pour exécuter le programme, dort quelques minutes et répétez.

Récemment, mon patron nous a dit que c'est bien, mais serait comme l'ensemble de la procédure pour être complètement autonome en java, ce qui signifie que c'boucles et dort dans java. En plus de cela, il aimerait que la durée du sommeil être déterminée par la ligne de commande à chaque fois que le programme est exécuté.

J'ai fait quelques recherches et il semble que l'utilisation de Fil.sleep() est inefficace dans certaines circonstances et je ne peux pas dire si c'est l'un d'eux ou pas. Aussi, je suis toujours dans le flou sur la façon d'avoir le temps de sommeil être déterminé via la ligne de commande lors de l'exécution du programme. Je peux fournir le code si nécessaire.

Pourquoi êtes-vous inquiet au sujet de l'efficacité si vous êtes à l'arrêt de l'ensemble du programme pour minutes à la fois?
C'est une préoccupation que j'ai vu quelques fois pendant que je faisais des recherches sur le processus. Je n'ai toujours pas avoir une compréhension claire.
Si vous pouvez trouver une commande dans l'API Java qui est si inefficace que ça prend assez de temps important par rapport à la quelques minutes de sommeil, je vais manger mon chapeau. Je n'ai pas de chapeau, mais je juge une telle commande à être tellement improbable que je vous propose de sortir, acheter un chapeau, et de le consommer.

OriginalL'auteur exit_1 | 2012-07-26