@@ -1534,9 +1534,8 @@ <h2 id="how-to-handle-a-request-in-the-background">How to handle a request in th
15341534< a id ="__codelineno-0-20 " name ="__codelineno-0-20 " href ="#__codelineno-0-20 "> </ a > < span class ="k "> return</ span > < span class ="n "> accepted</ span > < span class ="p "> (</ span > < span class ="s2 "> "Operation accepted"</ span > < span class ="p "> )</ span >
15351535</ code > </ pre > </ div >
15361536< h2 id ="how-to-configure-background-tasks "> How to configure background tasks< a class ="headerlink " href ="#how-to-configure-background-tasks " title ="Permanent link "> ¶</ a > </ h2 >
1537- < p > The following example shows how to configure a background task, including
1538- the activation of a service resolved by the DI container, running periodically
1539- once every second:</ p >
1537+ < p > The following example shows how to configure a background task, running
1538+ periodically once every second:</ p >
15401539< div class ="highlight "> < pre > < span > </ span > < code > < a id ="__codelineno-1-1 " name ="__codelineno-1-1 " href ="#__codelineno-1-1 "> </ a > < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> asyncio</ span >
15411540< a id ="__codelineno-1-2 " name ="__codelineno-1-2 " href ="#__codelineno-1-2 "> </ a > < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> datetime</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> datetime</ span >
15421541< a id ="__codelineno-1-3 " name ="__codelineno-1-3 " href ="#__codelineno-1-3 "> </ a >
@@ -1554,33 +1553,23 @@ <h2 id="how-to-configure-background-tasks">How to configure background tasks<a c
15541553< a id ="__codelineno-1-15 " name ="__codelineno-1-15 " href ="#__codelineno-1-15 "> </ a > < span class ="k "> return</ span > < span class ="n "> datetime</ span > < span class ="o "> .</ span > < span class ="n "> now</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> isoformat</ span > < span class ="p "> ()</ span >
15551554< a id ="__codelineno-1-16 " name ="__codelineno-1-16 " href ="#__codelineno-1-16 "> </ a >
15561555< a id ="__codelineno-1-17 " name ="__codelineno-1-17 " href ="#__codelineno-1-17 "> </ a >
1557- < a id ="__codelineno-1-18 " name ="__codelineno-1-18 " href ="#__codelineno-1-18 "> </ a > < span class ="k "> class</ span > < span class ="w "> </ span > < span class ="nc " > Foo </ span > < span class ="p "> :</ span >
1558- < a id ="__codelineno-1-19 " name ="__codelineno-1-19 " href ="#__codelineno-1-19 "> </ a > < span class ="k " > def </ span > < span class =" w " > </ span > < span class =" fm " > __init__ </ span > < span class =" p " > ( </ span > < span class =" bp " > self </ span > < span class =" p " > ) </ span > < span class =" o " > -> </ span > < span class =" kc " > None </ span > < span class =" p " > : </ span >
1559- < a id ="__codelineno-1-20 " name ="__codelineno-1-20 " href ="#__codelineno-1-20 "> </ a > < span class ="k " > pass </ span >
1560- < a id ="__codelineno-1-21 " name ="__codelineno-1-21 " href ="#__codelineno-1-21 "> </ a >
1561- < a id ="__codelineno-1-22 " name ="__codelineno-1-22 " href ="#__codelineno-1-22 "> </ a >
1562- < a id ="__codelineno-1-23 " name ="__codelineno-1-23 " href ="#__codelineno-1-23 "> </ a > < span class =" k " > async </ span > < span class =" k " > def </ span > < span class =" w " > </ span > < span class ="nf " > task_example </ span > < span class =" p " > ( </ span > < span class ="n "> app </ span > < span class ="p " > : </ span > < span class ="n "> Application </ span > < span class ="p "> ) </ span > < span class ="o " > -> </ span > < span class ="kc " > None </ span > < span class =" p "> : </ span >
1563- < a id ="__codelineno-1-24 " name ="__codelineno-1-24 " href ="#__codelineno-1-24 "> </ a > < span class =" c1 " > # example background task, running once every second, </ span >
1564- < a id ="__codelineno-1-25 " name ="__codelineno-1-25 " href ="#__codelineno-1-25 "> </ a > < span class =" c1 " > # this example also shows how to activate a service using the DI container </ span >
1565- < a id ="__codelineno-1-26 " name ="__codelineno-1-26 " href ="#__codelineno-1-26 "> </ a > < span class ="k " > while </ span > < span class ="kc " > True </ span > < span class ="p "> :</ span >
1566- < a id ="__codelineno-1-27 " name ="__codelineno-1-27 " href ="#__codelineno-1-27 "> </ a > < span class ="nb " > print </ span > < span class ="p "> (</ span > < span class ="n "> get_current_timestamp </ span > < span class ="p "> ())</ span >
1556+ < a id ="__codelineno-1-18 " name ="__codelineno-1-18 " href ="#__codelineno-1-18 "> </ a > < span class ="k "> async </ span > < span class =" k " > def </ span > < span class ="w "> </ span > < span class ="nf " > task_example </ span > < span class =" p " > () </ span > < span class =" o " > -> </ span > < span class =" kc " > None </ span > < span class ="p "> :</ span >
1557+ < a id ="__codelineno-1-19 " name ="__codelineno-1-19 " href ="#__codelineno-1-19 "> </ a > < span class ="c1 " > # example background task, running once every second, </ span >
1558+ < a id ="__codelineno-1-20 " name ="__codelineno-1-20 " href ="#__codelineno-1-20 "> </ a > < span class ="c1 " > # this example also shows how to activate a service using the DI container </ span >
1559+ < a id ="__codelineno-1-21 " name ="__codelineno-1-21 " href ="#__codelineno-1-21 "> </ a > < span class =" k " > while </ span > < span class =" kc " > True </ span > < span class =" p " > : </ span >
1560+ < a id ="__codelineno-1-22 " name ="__codelineno-1-22 " href ="#__codelineno-1-22 "> </ a > < span class =" nb " > print </ span > < span class =" p " > ( </ span > < span class =" n " > get_current_timestamp </ span > < span class =" p " > ()) </ span >
1561+ < a id ="__codelineno-1-23 " name ="__codelineno-1-23 " href ="#__codelineno-1-23 "> </ a > < span class ="k " > await </ span > < span class ="n "> asyncio </ span > < span class ="o " > . </ span > < span class ="n "> sleep </ span > < span class ="p "> ( </ span > < span class ="mi " > 1 </ span > < span class ="p "> ) </ span >
1562+ < a id ="__codelineno-1-24 " name ="__codelineno-1-24 " href ="#__codelineno-1-24 "> </ a >
1563+ < a id ="__codelineno-1-25 " name ="__codelineno-1-25 " href ="#__codelineno-1-25 "> </ a >
1564+ < a id ="__codelineno-1-26 " name ="__codelineno-1-26 " href ="#__codelineno-1-26 "> </ a > < span class =" k " > async </ span > < span class =" k " > def </ span > < span class =" w " > </ span > < span class ="nf " > configure_background_tasks </ span > < span class =" p " > ( </ span > < span class ="n " > app </ span > < span class ="p "> ) :</ span >
1565+ < a id ="__codelineno-1-27 " name ="__codelineno-1-27 " href ="#__codelineno-1-27 "> </ a > < span class =" n " > asyncio </ span > < span class =" o " > . </ span > < span class =" n " > get_event_loop </ span > < span class =" p " > () </ span > < span class ="o " > . </ span > < span class ="n " > create_task </ span > < span class =" p "> (</ span > < span class ="n "> task_example </ span > < span class ="p "> ())</ span >
15671566< a id ="__codelineno-1-28 " name ="__codelineno-1-28 " href ="#__codelineno-1-28 "> </ a >
1568- < a id ="__codelineno-1-29 " name ="__codelineno-1-29 " href ="#__codelineno-1-29 "> </ a > < span class ="n "> my_foo</ span > < span class ="o "> =</ span > < span class ="n "> app</ span > < span class ="o "> .</ span > < span class ="n "> service_provider</ span > < span class ="o "> .</ span > < span class ="n "> get</ span > < span class ="p "> (</ span > < span class ="n "> Foo</ span > < span class ="p "> )</ span >
1569- < a id ="__codelineno-1-30 " name ="__codelineno-1-30 " href ="#__codelineno-1-30 "> </ a > < span class ="k "> assert</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> my_foo</ span > < span class ="p "> ,</ span > < span class ="n "> Foo</ span > < span class ="p "> )</ span >
1570- < a id ="__codelineno-1-31 " name ="__codelineno-1-31 " href ="#__codelineno-1-31 "> </ a > < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "Foo id: "</ span > < span class ="p "> ,</ span > < span class ="nb "> id</ span > < span class ="p "> (</ span > < span class ="n "> my_foo</ span > < span class ="p "> ))</ span >
1571- < a id ="__codelineno-1-32 " name ="__codelineno-1-32 " href ="#__codelineno-1-32 "> </ a >
1572- < a id ="__codelineno-1-33 " name ="__codelineno-1-33 " href ="#__codelineno-1-33 "> </ a > < span class ="k "> await</ span > < span class ="n "> asyncio</ span > < span class ="o "> .</ span > < span class ="n "> sleep</ span > < span class ="p "> (</ span > < span class ="mi "> 1</ span > < span class ="p "> )</ span >
1573- < a id ="__codelineno-1-34 " name ="__codelineno-1-34 " href ="#__codelineno-1-34 "> </ a >
1574- < a id ="__codelineno-1-35 " name ="__codelineno-1-35 " href ="#__codelineno-1-35 "> </ a >
1575- < a id ="__codelineno-1-36 " name ="__codelineno-1-36 " href ="#__codelineno-1-36 "> </ a > < span class ="k "> async</ span > < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> configure_background_tasks</ span > < span class ="p "> (</ span > < span class ="n "> app</ span > < span class ="p "> ):</ span >
1576- < a id ="__codelineno-1-37 " name ="__codelineno-1-37 " href ="#__codelineno-1-37 "> </ a > < span class ="n "> asyncio</ span > < span class ="o "> .</ span > < span class ="n "> get_event_loop</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="n "> create_task</ span > < span class ="p "> (</ span > < span class ="n "> task_example</ span > < span class ="p "> (</ span > < span class ="n "> app</ span > < span class ="p "> ))</ span >
1577- < a id ="__codelineno-1-38 " name ="__codelineno-1-38 " href ="#__codelineno-1-38 "> </ a >
1578- < a id ="__codelineno-1-39 " name ="__codelineno-1-39 " href ="#__codelineno-1-39 "> </ a >
1579- < a id ="__codelineno-1-40 " name ="__codelineno-1-40 " href ="#__codelineno-1-40 "> </ a > < span class ="n "> app</ span > < span class ="o "> .</ span > < span class ="n "> on_start</ span > < span class ="o "> +=</ span > < span class ="n "> configure_background_tasks</ span >
1580- < a id ="__codelineno-1-41 " name ="__codelineno-1-41 " href ="#__codelineno-1-41 "> </ a >
1581- < a id ="__codelineno-1-42 " name ="__codelineno-1-42 " href ="#__codelineno-1-42 "> </ a > < span class ="n "> app</ span > < span class ="o "> .</ span > < span class ="n "> services</ span > < span class ="o "> .</ span > < span class ="n "> add_scoped</ span > < span class ="p "> (</ span > < span class ="n "> Foo</ span > < span class ="p "> )</ span >
1567+ < a id ="__codelineno-1-29 " name ="__codelineno-1-29 " href ="#__codelineno-1-29 "> </ a >
1568+ < a id ="__codelineno-1-30 " name ="__codelineno-1-30 " href ="#__codelineno-1-30 "> </ a > < span class ="n "> app</ span > < span class ="o "> .</ span > < span class ="n "> on_start</ span > < span class ="o "> +=</ span > < span class ="n "> configure_background_tasks</ span >
1569+ < a id ="__codelineno-1-31 " name ="__codelineno-1-31 " href ="#__codelineno-1-31 "> </ a >
1570+ < a id ="__codelineno-1-32 " name ="__codelineno-1-32 " href ="#__codelineno-1-32 "> </ a > < span class ="n "> app</ span > < span class ="o "> .</ span > < span class ="n "> services</ span > < span class ="o "> .</ span > < span class ="n "> add_scoped</ span > < span class ="p "> (</ span > < span class ="n "> Foo</ span > < span class ="p "> )</ span >
15821571</ code > </ pre > </ div >
1583- < div class ="nt-contribs "> < p class ="nt-mod-time "> Last modified on: 2025-04-29 07:50:00 </ p > < div class ="nt-contributors "> < div class ="nt-contributor nt-group-0 " title ="Roberto Prevato <roberto.prevato@gmail.com> (4 ) "> < span class ="nt-initials "> RP</ span > </ div > < div class ="nt-contributor nt-group-1 " title ="Elliot Waite <elliot@elliotwaite.com> (1) "> < span class ="nt-initials "> EW</ span > </ div > < div class ="nt-contributor nt-group-2 " title ="Roman Vlasenko <56698047+Klavionik@users.noreply.github.com> (1) "> < span class ="nt-initials "> RV</ span > </ div > </ div > </ div >
1572+ < div class ="nt-contribs "> < p class ="nt-mod-time "> Last modified on: 2025-05-02 10:56:38 </ p > < div class ="nt-contributors "> < div class ="nt-contributor nt-group-0 " title ="Roberto Prevato <roberto.prevato@gmail.com> (5 ) "> < span class ="nt-initials "> RP</ span > </ div > < div class ="nt-contributor nt-group-1 " title ="Elliot Waite <elliot@elliotwaite.com> (1) "> < span class ="nt-initials "> EW</ span > </ div > < div class ="nt-contributor nt-group-2 " title ="Roman Vlasenko <56698047+Klavionik@users.noreply.github.com> (1) "> < span class ="nt-initials "> RV</ span > </ div > </ div > </ div >
15841573
15851574
15861575
0 commit comments