#100DaysOfWeb in Python Transcripts
Chapter: Days 21-24: Async Flask APIs with Quart
Lecture: Asynchronous execution concepts
0:00 Let's look at the order and timing of operations. Imagine we have asynchronous execution like we just saw. So again, we have request one, two and three
0:10 coming in on exactly the same timing. They take exactly the same amount of time to run. But when we dug into the requests we saw most of the time
0:20 we're waiting on a database or something else right like a web service. So during those times, maybe our requests
0:26 actually could just run almost truly in parallel. Notice, for example, when request three comes in we couldn't quite run it
0:33 exactly when that request came in but it's pretty close because soon request one and two went back to waiting on the database.
0:40 So again, let's look at the timing here. So, we have our request one come in. And, of course, just like before it got done right when it did
0:48 in fact maybe just took a hair longer cause it gave up its time and couldn't quite get it back from two
0:54 right when it was ready to run, somethin like that. But we have our response time roughly the length of request one. But now, when request two comes in
1:03 we saw that request one was waiting on the database so it could immediately start running. And it got done more or less
1:08 in the same amount of time it took. And request three was, actually its response was moved up ahead of request two.
1:16 So from a response perspective, it went one, three, two because three was really short and one and two were waiting on the database.
1:23 So, boom one, two, three and it could just get that out of the way. So the response time per request from the outside
1:29 one, two, and three, looked much more like what they would be if there was just one user to the site even though it was theoretically really busy.
1:38 Now if we dig in again like we did before we'll see that yes, we're still doing framework database
1:43 code, maybe web services which I haven't highlighted here. But now the database section is green because during those times, we're telling Python
1:51 via our async and await programming you know what? I'm just waiting here. If you've got other stuff to do other requests or processes
1:59 feel free to go work on them until they start to wait. And then let me come back and run my code. That's the beauty of async programming.
2:05 This is a really powerful concept in Python in general. And it happens to be really useful on the web
2:11 because a lot of time, what you're doing on the website is waiting on a database, waiting on an external service
2:17 something like that. You can make that productive waiting time. So that's an overview of asynchronous programming in Python.