2017-01-09 5 views
0

У меня есть расписание задание в Java, чтобы попасть на указанный URL-адрес и получить ответ.Как запланировать задачу в Java, чтобы получить URL-адрес и получить ответ

Этот URL-адрес может быть установлен на ежемесячной основе. Как я мог реализовать это на Java? Пожалуйста помоги!

+2

Посмотрите на класс Executor в пакете параллелизма. – duffymo

+1

Всегда ли работает приложение? Или вы хотите запустить Java-приложение? – Fildor

+0

Как вы хотите вернуть ответ. вы можете использовать пакет ExecutorService java.util.concurrent, который возвращает объект Future – Barath

ответ

0

Вы можете использовать класс Timer и написать новый класс, расширяющий TimerTask. Реализация TimerTask будет вызываться таймером.

Вы можете настроить таймер на конкретную дату, когда она должна планировать задание.

timer.schedule(new Task(), new Date(2017,12,1); 

Метод запуска(), если Task() теперь будет называться на первом из Dezmeber в 2017.

class Task extends TimerTask{ 
    private Date nextRun; 
    public TimerTask(){ 
     nextRun = Calendar.getInstance().add(Calendar.MONTH, 1); 
    } 

    @Override public void run(){ 
    //Do your URL stuff here 
    Timer timer = new Timer(); 
    timer.schedule(new Task(), nextRun); 
    } 
} 

Это создаст задачу для текущей даты + 1 мес. Когда задача запустится, она автоматически создаст новую задачу, которая будет работать через месяц.

+0

может дать образец кода, чтобы попасть на указанный URL на ежемесячный основы – user5691531

+0

Что вы имеете в виду под «hit url»? Я уже дал вам пример кода, как это сделать ежемесячно. – GAlexMES

+0

Мне нужно ударить еще одно приложение и получить ответ – user5691531

0
import java.util.TimerTask; 
import java.util.Date; 
//Create a class extends TimerTask 
public class ScheduledTask extends TimerTask { 
    Date date; 
    // Add your task here 
    public void run() { 
     // initialize date 
     date = new Date(); 
     System.out.println("Time is :" + date); 
    } 
} 

Timer time = new Timer(); // Instantiate Timer Object 
ScheduledTask st = new ScheduledTask(); // Instantiate SheduledTask class 
time.schedule(st, 0, 1000); // Create Repetitively task for every 1 secs 

Вы можете отрегулировать время, изменив время в методе time.schedule.

0

Вы можете использовать внешнюю кварцевую библиотеку для этого же. Ниже приведена ссылка на то же самое.

http://www.quartz-scheduler.org/overview/quick-start.html

+0

Для этого вам не нужна библиотека. Вы можете просто использовать классы Java Timer и TimeTask. Библиотека будет перегрузкой. – GAlexMES

+1

Да, почему бы вам не сделать это. Но если вы хотите больше функций, таких как остановка задачи, перенести задачу и т. Д., Вы можете использовать кварц. –

+0

Вы правы, но лучше держать его простым (по крайней мере, на мой взгляд). И Кварц делает гораздо больше, тогда ему нужно. – GAlexMES