Доброго времени суток.
Есть код:
package ru.copy;
public class workProgram {
public static void main(String[] args) throws IOException {
//МОЙ код для копирования данных
}
}
Моя программа копирует файлы из одной папки в другую. Дело в том, что в папку исходник будут периодически заливаться файлы, происходить это будет на протяжении 15-20 часов и нужно перекопировать ВСЕ файлы. Помимо того эти файлы в папке исходнике будут находится там 1 час, а затем удаляться(потому и нужно их от туда скопировать).
Как сделать постоянное выполнение кода и процедуру отключения?
Самое простое сделать вечный цикл:
public class workProgram {
public static void main(String[] args) throws IOException {
int a = 1;
while (true) {
//МОЙ код для копирования данных
}
}
}
Тогда программа уходит в вечный цикл, работает и файлы копируются. Но как сделать корректную остановку такого кода? Да и нет более аккуратного решения?
Да, пробовал запуск по интервалам времени:
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
public void run() {
//мой код
}
};
timer.schedule(timerTask, 5000, 10000);
//первое число - когда он запуститься, второе - через сколько будет повторяться
Это некорректно, т.к. процедура может не успеть завершиться к нужному времени и запустится отдельный поток, что может привести к ошибке, да и опять же - как стопить такое?
P.S. наверное, по моей стилистике написания вы поняли, что я начинающий, потому очень прошу давать развёрнутые ответы с комментариями(я старался максимально понятно задать вопрос).
Продвижение своими сайтами как стратегия роста и независимости