2013-09-13 8 views
-7

Мне нужно создать программу в java, которая будет вставлять данные в базу данных mysql каждые 10 минут. И это будет продолжаться до тех пор, пока пользователь прекратит выполнение программы. Нужен ли мне Thread для создания программы? Пожалуйста, предложите ссылки или блок кода, который будет вызываться автоматически через каждые 10 минут.вставить данные в базу данных после интервала Java

+1

Используйте «ScheduledThreadPoolExecutor». –

+0

@ javalover, хотя ваш вопрос был приостановлен, вы все равно можете принять ответ и/или ответить на ответ :) – SnakeDoc

ответ

0

Я хотел бы использовать java.util.concurrent.* пакет, так как он новее и лучше для нарезания резьбы (которые все таймеры/задержки, необходимо получить для реализации, чтобы не блокировать программу)

Этот пример выполнит свою задачу, а затем снова -планировать себя автоматически ... приятно! (Попробовать /, наконец, блок обеспечивает исключение не нарушит наш график):

import java.util.concurrent.ScheduledExecutorService; 
import java.util.concurrent.TimeUnit; 

class Task implements Runnable { 

    long untilNextInvocation = 60000; // 1 minute == 60000 milliseconds 

    private final ScheduledExecutorService service; 

    public Task(ScheduledExecutorService service) { 

     this.service = service; 

    } 

    @Override 
    public void run() { 

     try { 

       // do your stuff here 

     } finally { 

      service.schedule(new Task(service), untilNextInvocation, TimeUnit.MILLISECONDS); 

     } 

    } 

} 

UPDATE --

Как вызвать:

public static void main(String[] args) { 

    // set 3 available threads 
    ScheduledExecutorService service = Executors.newScheduledThreadPool(3); 

    // kick off service 
    new Task(service).run(); 

} 

ИЛИ

Вы можете вызвать его из конструктора объекта :

public someClassConstructor() { 

    // set 3 available threads 
    ScheduledExecutorService service = Executors.newScheduledThreadPool(3); 

    // kick off service 
    new Task(service).run(); 

} 
+0

Это базовый класс, который, как я полагаю, как мне реализовать на главном, чтобы вызвать этот конструктор, нам нужен тип ScheduledExecutorService объект. –

+0

@javalover см. Обновление – SnakeDoc

0

Для этого вы можете использовать Timer Task.

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

Смежные вопросы