Всем привет. У меня есть функция, которая асинхронно бегает в сеть, забирает данные и сохраняет в бд. Проблема в том, что пока функция выполняется, кто-то может вызвать ее еще раз 10. И все 10 раз функция сходит в сеть. Мне нужно добиться такого поведения: "пока функция выполняется, остальные встают в очередь. Когда функция закончит свое выполнение, то нужно взять из очереди только последнюю функцию и выполнить ее". Очень не хочется это решить с помощью котлин флоу.
Что я пробовал:
Я слышал про debounce и throttling в RX, но это все привязывается ко времени. Мне же не надо "троттлить по времени", но выполнять последнюю команду в очереди с последующим очищением очереди.