2017-05-15 6 views
1

J'ai besoin d'exécuter un programme java spécifique à un moment donné de la journée et j'ai besoin de modifier le code suivant pour le faire fonctionner à un moment donné de la journée.Comment puis-je utiliser le service java scheduledExecutor pour exécuter un code java à une heure spécifique d'une journée?

private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 

public static void main(String args[]) { 
    final Runnable beeper = new Runnable() { 
     public void run() { 
      System.out.println("beep"); 
     } 
    }; 

    final ScheduledFuture<?> beeperHandle = scheduler.scheduleAtFixedRate(beeper, 0, 1, SECONDS); 
    scheduler.schedule(new Runnable() { 
     public void run() { 
      beeperHandle.cancel(true); 
     } 

    }, 60 * 60, SECONDS); 
} 

Répondre

0

Vous pouvez vérifier le temps réel Beeper chaque fois qu'il est appelé et émet un signal sonore seulement à HOSR demandé:

public void run() { 
    if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) == REQUESTED_HOUR) { 
      System.out.println("beep"); 
    } 
1

Vous devez utiliser ScheduledExecutorService? Ce n'est pas bon pour planifier des tâches à un moment précis. C'est un outil à utiliser pour les actions retardées/répétées. Avez-vous vu Quartz? La documentation a de bons exemples et la bibliothèque vous permet d'être très précis sur le temps de la tâche.

// edit: Vous avez par exemple exemple de réalisation: https://www.mkyong.com/java/quartz-2-scheduler-tutorial/ Vous pouvez utiliser: https://hc.apache.org/httpcomponents-client-ga/examples.html Il permet de faire des appels simples. Comme ceci:

HttpGet httpGet = new HttpGet("http://somesite.com"); 
BasicHttpClientConnectionManager manager = new BasicHttpClientConnectionManager(); 
HttpClient client = new MinimalHttpClient(manager); 
client.execute(httpGet); 

Mettez ce code dans le travail et cela devrait fonctionner.

+0

Est-il possible d'envoyer une requête GET en utilisant un travail cron sur le planificateur à quartz? Si oui pouvez-vous donner un exemple de code s'il vous plaît? –