2017-05-15 5 views
1

Ich muss ein bestimmtes Java-Programm zu einer bestimmten Tageszeit ausführen und den folgenden Code ändern, damit er zu einer bestimmten Tageszeit ausgeführt wird.Wie kann ich den java-Dienst "terminatedExecutor" verwenden, um einen Java-Code zu einer bestimmten Tageszeit auszuführen?

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); 
} 

Antwort

0

können Sie prüfen, aktuelle Zeit in jeden Piepser Mal aufgerufen wird und ein akustisches Signal nur bei angeforderten hosr:

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

Sie haben ScheduledExecutorService zu benutzen? Es ist nicht gut zum Planen von Aufgaben zu bestimmten Zeiten. Es ist für verzögerte/wiederholte Aktionen zu verwenden. Hast du Quarz gesehen? Dokumentation hat schöne Beispiele und Bibliothek ermöglicht es Ihnen, sehr genau über die Zeit der Aufgabe zu sein.

// edit: Hier haben Sie Beispielimplementierung Beispiel: https://www.mkyong.com/java/quartz-2-scheduler-tutorial/ Sie verwenden können: https://hc.apache.org/httpcomponents-client-ga/examples.html Es ermöglicht eine einfache Anrufe zu tun. Gefällt mir:

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

Setzen Sie diesen Code in den Job und es sollte funktionieren.

+0

Ist es möglich, eine GET-Anfrage mit einem Cron-Job auf dem Quartz-Scheduler zu senden? Wenn ja, können Sie bitte einen Beispielcode ausgeben? –

Verwandte Themen