Ага) Сказали так сделать🤣
Омг)
Ну вообще как вариант, сделать merge двух потоков (первый с запросом, второй с интервалом в 1000 секунд), потом взять take(1) из них и в зависимости от того, что пришло (ответ от сервера или поток с интервалом), уже решить что делать)
Потом с запросом правда тоже нужно объединить с таймером в 500 секунд, чтоб понять, сколько он там выполнялся)