Мне нужен какой-то сервис, который будет запускать несколько задач одновременно и с интервалом в 1 секунду в течение 1 минуты.
В случае сбоя одной из задач я хочу остановить службу и все задачи, которыепобежал с каким-то индикатором, что что-то пошло не так, иначе, если через минуту все прошло хорошо, сервис остановится с индикатором, что все прошло хорошо.
Например, у меня есть 2 функции:
Runnable task1 = ()->{
int num = Math.rand(1,100);
if (num < 5){
throw new Exception("something went wrong with this task,terminate");
}
}
Runnable task2 = ()->{
int num = Math.rand(1,100)
return num < 50;
}
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2);
task1schedule = scheduledExecutorService.scheduleAtFixedRate(task1, 1, 60, TimeUnit.SECONDS);
task2schedule = scheduledExecutorService.scheduleAtFixedRate(task2, 1, 60, TimeUnit.SECONDS);
if (!task1schedule || !task2schedule) scheduledExecutorService.shutdown();
Есть какие-нибудь идеи о том, как мне решить эту проблему и сделать вещи как можно более общими?