ли в связке GenStage Producer -> Consumer заставить потребителя сделать sleep на некоторое время, если у продюсера кончились данные для обработки? я пробовал так:
в продюсере в handle_demand(demand, []) если выборка данных пустая, то возвращаю {:noreply, [], []}.
в воркере такое добавил:
def handle_events([], _from, db_pid) do
Logger.info "next_pack empty, wait"
:timer.sleep 5_000
{:noreply, [], db_pid}
end
Но на деле продюсер возвращает :noreply, и потом ничего не происходит, как будто в воркер и не попадает
попробуй Process.sleep https://elixir-lang.org/blog/2016/07/14/announcing-genstage/ http://joxi.ru/ZrJepNGH1VGn9A?d=1
Обсуждают сегодня