From 16c6d7c319ccd4d52c282e6a544de95e15b4e2df Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Wed, 5 Aug 2020 23:32:15 -0400 Subject: [PATCH] Add what we are going to build section --- docs/tutorials/asyncio.rst | 12 ++++++++++++ docs/tutorials/asyncio_images/diagram.png | Bin 0 -> 33986 bytes 2 files changed, 12 insertions(+) create mode 100644 docs/tutorials/asyncio_images/diagram.png diff --git a/docs/tutorials/asyncio.rst b/docs/tutorials/asyncio.rst index 9109250d..85b10238 100644 --- a/docs/tutorials/asyncio.rst +++ b/docs/tutorials/asyncio.rst @@ -18,6 +18,18 @@ You can find complete project on the What are we going to build? --------------------------- +We will build a monitoring daemon that monitors web services availability. + +The daemon will send the requests to the `example.com `_ and +`httpbin.org `_ every couple of seconds. For each successfully completed +response it will log: + +- The response code +- The amount of bytes in the response +- The time took to complete the response + +.. image:: asyncio_images/diagram.png + Prepare the environment ----------------------- diff --git a/docs/tutorials/asyncio_images/diagram.png b/docs/tutorials/asyncio_images/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8a77184b71a2443d71b5ecde6241fcc0c656c732 GIT binary patch literal 33986 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 L`C8Uh!zcd*8}N_7 literal 0 HcmV?d00001