Hi @svilen ,
On page 64
, the Logger.info
on init
function it was declare like:
Logger.info("Received demand for #{demand} pages")
but when running the app on IEx
, the console shows us:
19:28:18.359 [info] PageProducer received demand for 1000 pages
On page 73
, when it was suggested to change the tuple for :producer
to test buffering events, the loggers on console show messages like:
[warn] GenStage producer PageProducer has discarded 2 events from buffer
But when I try to use the same tuple({:producer, initial_state, buffer_size: :infinity}
), I receive this output:
iex(1)> PageProducer.scrap_pages(pages)
20:50:54.066 [info] Elixir.PageConsumer received ["google.com"]
20:50:54.066 [info] Elixir.PageConsumer received ["facebook.com"]
20:50:55.068 [info] Elixir.PageConsumer received ["apple.com"]
20:50:57.067 [info] Elixir.PageConsumer received ["netflix.com"]
20:50:58.069 [info] Elixir.PageConsumer received ["amazon.com"]
20:51:01.068 [info] Elixir.PageProducer received demand for 1 pages
20:51:03.070 [info] Elixir.PageProducer received demand for 1 pages
On page 83
when using the via tuple function.
def via(id) do
{:via, Registry, {ProducerConsumerRegistry, id}}
end
After start the IEx
session, the Logger
print this warn
:
21:35:00.121 [warn] :subscribe_to value with type {:via, module(), term()} is deprecated. Change {:via, Registry, {ProducerConsumerRegistry, "online_page_producer_consumer_1"}} to {{:via, Registry, {ProducerConsumerRegistry, "online_page_producer_consumer_1"}}, []} instead.