Skip to content

Commit 016acd1

Browse files
Deploy documentation on 2025-05-02 08:57:19 UTC
1 parent 00029c0 commit 016acd1

4 files changed

Lines changed: 40 additions & 49 deletions

File tree

blacksheep/background-tasks/index.html

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -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">&quot;Operation accepted&quot;</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">&para;</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">-&gt;</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">-&gt;</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">-&gt;</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">&quot;Foo id: &quot;</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 &lt;roberto.prevato@gmail.com&gt; (4)"><span class="nt-initials">RP</span></div><div class="nt-contributor nt-group-1" title="Elliot Waite &lt;elliot@elliotwaite.com&gt; (1)"><span class="nt-initials">EW</span></div><div class="nt-contributor nt-group-2" title="Roman Vlasenko &lt;56698047+Klavionik@users.noreply.github.com&gt; (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 &lt;roberto.prevato@gmail.com&gt; (5)"><span class="nt-initials">RP</span></div><div class="nt-contributor nt-group-1" title="Elliot Waite &lt;elliot@elliotwaite.com&gt; (1)"><span class="nt-initials">EW</span></div><div class="nt-contributor nt-group-2" title="Roman Vlasenko &lt;56698047+Klavionik@users.noreply.github.com&gt; (1)"><span class="nt-initials">RV</span></div></div></div>
15841573

15851574

15861575

blacksheep/dependency-injection/index.html

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2209,19 +2209,21 @@ <h2 id="services-that-require-asynchronous-initialization">Services that require
22092209
<a id="__codelineno-18-13" name="__codelineno-18-13" href="#__codelineno-18-13"></a><span class="hll"><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">configure_something</span><span class="p">(</span><span class="n">app</span><span class="p">:</span> <span class="n">Application</span><span class="p">):</span>
22102210
</span><a id="__codelineno-18-14" name="__codelineno-18-14" href="#__codelineno-18-14"></a><span class="hll"> <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="mf">0.5</span><span class="p">)</span> <span class="c1"># simulate 500 ms delay</span>
22112211
</span><a id="__codelineno-18-15" name="__codelineno-18-15" href="#__codelineno-18-15"></a><span class="hll">
2212-
</span><a id="__codelineno-18-16" name="__codelineno-18-16" href="#__codelineno-18-16"></a><span class="hll"> <span class="n">app</span><span class="o">.</span><span class="n">services</span><span class="o">.</span><span class="n">add_instance</span><span class="p">(</span><span class="n">Example</span><span class="p">(</span><span class="s2">&quot;Hello World&quot;</span><span class="p">))</span>
2213-
</span><a id="__codelineno-18-17" name="__codelineno-18-17" href="#__codelineno-18-17"></a><span class="hll">
2214-
</span><a id="__codelineno-18-18" name="__codelineno-18-18" href="#__codelineno-18-18"></a><span class="hll">
2215-
</span><a id="__codelineno-18-19" name="__codelineno-18-19" href="#__codelineno-18-19"></a><span class="hll"><span class="n">app</span><span class="o">.</span><span class="n">on_start</span> <span class="o">+=</span> <span class="n">configure_something</span>
2212+
</span><a id="__codelineno-18-16" name="__codelineno-18-16" href="#__codelineno-18-16"></a><span class="hll"> <span class="c1"># Note: this works with Rodi! If you use a different kind of DI,</span>
2213+
</span><a id="__codelineno-18-17" name="__codelineno-18-17" href="#__codelineno-18-17"></a><span class="hll"> <span class="c1"># implement the desired logic in your connector object / ContainerProtocor</span>
2214+
</span><a id="__codelineno-18-18" name="__codelineno-18-18" href="#__codelineno-18-18"></a><span class="hll"> <span class="n">app</span><span class="o">.</span><span class="n">services</span><span class="o">.</span><span class="n">add_instance</span><span class="p">(</span><span class="n">Example</span><span class="p">(</span><span class="s2">&quot;Hello World&quot;</span><span class="p">))</span>
2215+
</span><a id="__codelineno-18-19" name="__codelineno-18-19" href="#__codelineno-18-19"></a><span class="hll">
22162216
</span><a id="__codelineno-18-20" name="__codelineno-18-20" href="#__codelineno-18-20"></a>
2217-
<a id="__codelineno-18-21" name="__codelineno-18-21" href="#__codelineno-18-21"></a>
2218-
<a id="__codelineno-18-22" name="__codelineno-18-22" href="#__codelineno-18-22"></a><span class="nd">@get</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">)</span>
2219-
<a id="__codelineno-18-23" name="__codelineno-18-23" href="#__codelineno-18-23"></a><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">home</span><span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">Example</span><span class="p">):</span>
2220-
<a id="__codelineno-18-24" name="__codelineno-18-24" href="#__codelineno-18-24"></a> <span class="k">return</span> <span class="n">service</span><span class="o">.</span><span class="n">text</span>
2217+
<a id="__codelineno-18-21" name="__codelineno-18-21" href="#__codelineno-18-21"></a><span class="n">app</span><span class="o">.</span><span class="n">on_start</span> <span class="o">+=</span> <span class="n">configure_something</span>
2218+
<a id="__codelineno-18-22" name="__codelineno-18-22" href="#__codelineno-18-22"></a>
2219+
<a id="__codelineno-18-23" name="__codelineno-18-23" href="#__codelineno-18-23"></a>
2220+
<a id="__codelineno-18-24" name="__codelineno-18-24" href="#__codelineno-18-24"></a><span class="nd">@get</span><span class="p">(</span><span class="s2">&quot;/&quot;</span><span class="p">)</span>
2221+
<a id="__codelineno-18-25" name="__codelineno-18-25" href="#__codelineno-18-25"></a><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">home</span><span class="p">(</span><span class="n">service</span><span class="p">:</span> <span class="n">Example</span><span class="p">):</span>
2222+
<a id="__codelineno-18-26" name="__codelineno-18-26" href="#__codelineno-18-26"></a> <span class="k">return</span> <span class="n">service</span><span class="o">.</span><span class="n">text</span>
22212223
</code></pre></div>
22222224
<p>Services that require disposal can be disposed of in the <code>on_stop</code> callback:</p>
22232225
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">dispose_example</span><span class="p">(</span><span class="n">app</span><span class="p">:</span> <span class="n">Application</span><span class="p">):</span>
2224-
<a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a> <span class="n">service</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">service_provider</span><span class="p">[</span><span class="n">Example</span><span class="p">]</span>
2226+
<a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a> <span class="n">service</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">services</span><span class="o">.</span><span class="n">resolve</span><span class="p">(</span><span class="n">Example</span><span class="p">)</span>
22252227
<a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a><span class="hll"> <span class="k">await</span> <span class="n">service</span><span class="o">.</span><span class="n">dispose</span><span class="p">()</span>
22262228
</span><a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a>
22272229
<a id="__codelineno-19-5" name="__codelineno-19-5" href="#__codelineno-19-5"></a>
@@ -2618,7 +2620,7 @@ <h3 id="using-dependency-injector-instead-of-rodi">Using Dependency Injector ins
26182620
<em>Dependency Injector</em>, including an example illustrating how to use <code>snake_case</code> for providers in
26192621
the Dependency Injector's container: <a href="https://github.com/Neoteroi/BlackSheep-Examples/blob/main/dependency-injector/docs/example2.py"><em>BlackSheep-Examples</em></a>.</p>
26202622
</div>
2621-
<div class="nt-contribs"><p class="nt-mod-time">Last modified on: 2025-05-02 09:14:18</p><div class="nt-contributors"><div class="nt-contributor nt-group-0" title="Roberto Prevato &lt;roberto.prevato@gmail.com&gt; (8)"><span class="nt-initials">RP</span></div><div class="nt-contributor nt-group-1" title="Elliot Waite &lt;elliot@elliotwaite.com&gt; (1)"><span class="nt-initials">EW</span></div><div class="nt-contributor nt-group-2" title="Roman Vlasenko &lt;56698047+Klavionik@users.noreply.github.com&gt; (1)"><span class="nt-initials">RV</span></div><div class="nt-contributor nt-group-3" title="techntools &lt;71767293+techntools@users.noreply.github.com&gt; (1)"><span class="nt-initials">T</span></div></div></div>
2623+
<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 &lt;roberto.prevato@gmail.com&gt; (9)"><span class="nt-initials">RP</span></div><div class="nt-contributor nt-group-1" title="Elliot Waite &lt;elliot@elliotwaite.com&gt; (1)"><span class="nt-initials">EW</span></div><div class="nt-contributor nt-group-2" title="Roman Vlasenko &lt;56698047+Klavionik@users.noreply.github.com&gt; (1)"><span class="nt-initials">RV</span></div><div class="nt-contributor nt-group-3" title="techntools &lt;71767293+techntools@users.noreply.github.com&gt; (1)"><span class="nt-initials">T</span></div></div></div>
26222624

26232625

26242626

blacksheep/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)