app/assets/manager.html-BABFjnQP.js

113 lines
37 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as n,o as s,c as a,e}from"./app-Ct8dV_oN.js";const t={},p=e(`<h3 id="class-channeldeliver" tabindex="-1"><a class="header-anchor" href="#class-channeldeliver"><span><em><strong>class</strong></em> <code>ChannelDeliver</code></span></a></h3><h3 id="def-init-self-active-channel-any-passive-channel-any-channel-deliver-active-channel-channel-any-channel-deliver-passive-channel-tuple-str-dict-publish-channel-tuple-str-any-none" tabindex="-1"><a class="header-anchor" href="#def-init-self-active-channel-any-passive-channel-any-channel-deliver-active-channel-channel-any-channel-deliver-passive-channel-tuple-str-dict-publish-channel-tuple-str-any-none"><span> <em><strong>def</strong></em> <code>__init__(self, active: Channel[Any], passive: Channel[Any], channel_deliver_active: Channel[Channel[Any]], channel_deliver_passive: Channel[tuple[str, dict]], publish: Channel[tuple[str, Any]]) -&gt; None</code></span></a></h3><p></p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">__init__</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> active<span class="token punctuation">:</span> Channel<span class="token punctuation">[</span>Any<span class="token punctuation">]</span><span class="token punctuation">,</span> passive<span class="token punctuation">:</span> Channel<span class="token punctuation">[</span>Any<span class="token punctuation">]</span><span class="token punctuation">,</span> channel_deliver_active<span class="token punctuation">:</span> Channel<span class="token punctuation">[</span>Channel<span class="token punctuation">[</span>Any<span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">,</span> channel_deliver_passive<span class="token punctuation">:</span> Channel<span class="token punctuation">[</span><span class="token builtin">tuple</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> <span class="token builtin">dict</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">,</span> publish<span class="token punctuation">:</span> Channel<span class="token punctuation">[</span><span class="token builtin">tuple</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> Any<span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
self<span class="token punctuation">.</span>active <span class="token operator">=</span> active
self<span class="token punctuation">.</span>passive <span class="token operator">=</span> passive
self<span class="token punctuation">.</span>channel_deliver_active <span class="token operator">=</span> channel_deliver_active
self<span class="token punctuation">.</span>channel_deliver_passive <span class="token operator">=</span> channel_deliver_passive
self<span class="token punctuation">.</span>publish <span class="token operator">=</span> publish
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="class-processmanager" tabindex="-1"><a class="header-anchor" href="#class-processmanager"><span><em><strong>class</strong></em> <code>ProcessManager</code></span></a></h3><p>进程管理器</p><h3 id="def-init-self-lifespan-lifespan-none" tabindex="-1"><a class="header-anchor" href="#def-init-self-lifespan-lifespan-none"><span> <em><strong>def</strong></em> <code>__init__(self, lifespan: &#39;Lifespan&#39;) -&gt; None</code></span></a></h3><p></p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">__init__</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> lifespan<span class="token punctuation">:</span> <span class="token string">&#39;Lifespan&#39;</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
self<span class="token punctuation">.</span>lifespan <span class="token operator">=</span> lifespan
self<span class="token punctuation">.</span>targets<span class="token punctuation">:</span> <span class="token builtin">dict</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> <span class="token builtin">tuple</span><span class="token punctuation">[</span>Callable<span class="token punctuation">,</span> <span class="token builtin">tuple</span><span class="token punctuation">,</span> <span class="token builtin">dict</span><span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
self<span class="token punctuation">.</span>processes<span class="token punctuation">:</span> <span class="token builtin">dict</span><span class="token punctuation">[</span><span class="token builtin">str</span><span class="token punctuation">,</span> Process<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-start-self-name-str-none" tabindex="-1"><a class="header-anchor" href="#def-start-self-name-str-none"><span> <em><strong>def</strong></em> <code>start(self, name: str) -&gt; None</code></span></a></h3><p> 开启后自动监控进程,并添加到进程字典中</p><p>Args:</p><pre><code>name:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">start</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> name<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
开启后自动监控进程,并添加到进程字典中
Args:
name:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> name <span class="token keyword">not</span> <span class="token keyword">in</span> self<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
<span class="token keyword">raise</span> KeyError<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Process </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string"> not found.&#39;</span></span><span class="token punctuation">)</span>
chan_active <span class="token operator">=</span> get_channel<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">-active&#39;</span></span><span class="token punctuation">)</span>
<span class="token keyword">def</span> <span class="token function">_start_process</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
process <span class="token operator">=</span> Process<span class="token punctuation">(</span>target<span class="token operator">=</span>self<span class="token punctuation">.</span>targets<span class="token punctuation">[</span>name<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> args<span class="token operator">=</span>self<span class="token punctuation">.</span>targets<span class="token punctuation">[</span>name<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span> kwargs<span class="token operator">=</span>self<span class="token punctuation">.</span>targets<span class="token punctuation">[</span>name<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">,</span> daemon<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>processes<span class="token punctuation">[</span>name<span class="token punctuation">]</span> <span class="token operator">=</span> process
process<span class="token punctuation">.</span>start<span class="token punctuation">(</span><span class="token punctuation">)</span>
_start_process<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">while</span> <span class="token boolean">True</span><span class="token punctuation">:</span>
data <span class="token operator">=</span> chan_active<span class="token punctuation">.</span>receive<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> data <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>info<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Stopping process </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">&#39;</span></span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>before_process_shutdown<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>terminate<span class="token punctuation">(</span>name<span class="token punctuation">)</span>
<span class="token keyword">break</span>
<span class="token keyword">elif</span> data <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>info<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Restarting process </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">&#39;</span></span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>before_process_shutdown<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>lifespan<span class="token punctuation">.</span>before_process_restart<span class="token punctuation">(</span><span class="token punctuation">)</span>
self<span class="token punctuation">.</span>terminate<span class="token punctuation">(</span>name<span class="token punctuation">)</span>
_start_process<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">continue</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string">&#39;Unknown data received, ignored.&#39;</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-start-all-self-none" tabindex="-1"><a class="header-anchor" href="#def-start-all-self-none"><span> <em><strong>def</strong></em> <code>start_all(self) -&gt; None</code></span></a></h3><p> 启动所有进程</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">start_all</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
启动所有进程
&quot;&quot;&quot;</span>
<span class="token keyword">for</span> name <span class="token keyword">in</span> self<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
threading<span class="token punctuation">.</span>Thread<span class="token punctuation">(</span>target<span class="token operator">=</span>self<span class="token punctuation">.</span>start<span class="token punctuation">,</span> args<span class="token operator">=</span><span class="token punctuation">(</span>name<span class="token punctuation">,</span><span class="token punctuation">)</span><span class="token punctuation">,</span> daemon<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span><span class="token punctuation">.</span>start<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-add-target-self-name-str-target-target-func-args-tuple-kwargs-any-none" tabindex="-1"><a class="header-anchor" href="#def-add-target-self-name-str-target-target-func-args-tuple-kwargs-any-none"><span> <em><strong>def</strong></em> <code>add_target(self, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -&gt; None</code></span></a></h3><p> 添加进程</p><p>Args:</p><pre><code>name: 进程名,用于获取和唯一标识
target: 进程函数
args: 进程函数参数
kwargs: 进程函数关键字参数通常会默认传入chan_active和chan_passive
</code></pre><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">add_target</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> name<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">,</span> target<span class="token punctuation">:</span> TARGET_FUNC<span class="token punctuation">,</span> args<span class="token punctuation">:</span> <span class="token builtin">tuple</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> kwargs<span class="token operator">=</span><span class="token boolean">None</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
添加进程
Args:
name: 进程名,用于获取和唯一标识
target: 进程函数
args: 进程函数参数
kwargs: 进程函数关键字参数通常会默认传入chan_active和chan_passive
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> kwargs <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
kwargs <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
chan_active<span class="token punctuation">:</span> Channel <span class="token operator">=</span> Channel<span class="token punctuation">(</span>_id<span class="token operator">=</span><span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">-active&#39;</span></span><span class="token punctuation">)</span>
chan_passive<span class="token punctuation">:</span> Channel <span class="token operator">=</span> Channel<span class="token punctuation">(</span>_id<span class="token operator">=</span><span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">-passive&#39;</span></span><span class="token punctuation">)</span>
channel_deliver <span class="token operator">=</span> ChannelDeliver<span class="token punctuation">(</span>active<span class="token operator">=</span>chan_active<span class="token punctuation">,</span> passive<span class="token operator">=</span>chan_passive<span class="token punctuation">,</span> channel_deliver_active<span class="token operator">=</span>channel_deliver_active_channel<span class="token punctuation">,</span> channel_deliver_passive<span class="token operator">=</span>channel_deliver_passive_channel<span class="token punctuation">,</span> publish<span class="token operator">=</span>publish_channel<span class="token punctuation">)</span>
self<span class="token punctuation">.</span>targets<span class="token punctuation">[</span>name<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">(</span>_delivery_channel_wrapper<span class="token punctuation">,</span> <span class="token punctuation">(</span>target<span class="token punctuation">,</span> channel_deliver<span class="token punctuation">,</span> shared_memory<span class="token punctuation">,</span> <span class="token operator">*</span>args<span class="token punctuation">)</span><span class="token punctuation">,</span> kwargs<span class="token punctuation">)</span>
set_channels<span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">-active&#39;</span></span><span class="token punctuation">:</span> chan_active<span class="token punctuation">,</span> <span class="token string-interpolation"><span class="token string">f&#39;</span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string">-passive&#39;</span></span><span class="token punctuation">:</span> chan_passive<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-join-all-self-none" tabindex="-1"><a class="header-anchor" href="#def-join-all-self-none"><span> <em><strong>def</strong></em> <code>join_all(self) -&gt; None</code></span></a></h3><p></p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">join_all</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span>name<span class="token punctuation">,</span> process<span class="token punctuation">)</span> <span class="token keyword">in</span> self<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
process<span class="token punctuation">.</span>join<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-terminate-self-name-str-none" tabindex="-1"><a class="header-anchor" href="#def-terminate-self-name-str-none"><span> <em><strong>def</strong></em> <code>terminate(self, name: str) -&gt; None</code></span></a></h3><p> 终止进程并从进程字典中删除</p><p>Args:</p><pre><code>name:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">terminate</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> name<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
终止进程并从进程字典中删除
Args:
name:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> name <span class="token keyword">not</span> <span class="token keyword">in</span> self<span class="token punctuation">.</span>processes<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Process </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string"> not found.&#39;</span></span><span class="token punctuation">)</span>
<span class="token keyword">return</span>
process <span class="token operator">=</span> self<span class="token punctuation">.</span>processes<span class="token punctuation">[</span>name<span class="token punctuation">]</span>
process<span class="token punctuation">.</span>terminate<span class="token punctuation">(</span><span class="token punctuation">)</span>
process<span class="token punctuation">.</span>join<span class="token punctuation">(</span>TIMEOUT<span class="token punctuation">)</span>
<span class="token keyword">if</span> process<span class="token punctuation">.</span>is_alive<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
process<span class="token punctuation">.</span>kill<span class="token punctuation">(</span><span class="token punctuation">)</span>
logger<span class="token punctuation">.</span>success<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Process </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string"> terminated.&#39;</span></span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-terminate-all-self-none" tabindex="-1"><a class="header-anchor" href="#def-terminate-all-self-none"><span> <em><strong>def</strong></em> <code>terminate_all(self) -&gt; None</code></span></a></h3><p></p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">terminate_all</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span>
<span class="token keyword">for</span> name <span class="token keyword">in</span> self<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
self<span class="token punctuation">.</span>terminate<span class="token punctuation">(</span>name<span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="def-is-process-alive-self-name-str-bool" tabindex="-1"><a class="header-anchor" href="#def-is-process-alive-self-name-str-bool"><span> <em><strong>def</strong></em> <code>is_process_alive(self, name: str) -&gt; bool</code></span></a></h3><p> 检查进程是否存活</p><p>Args:</p><pre><code>name:
</code></pre><p>Returns:</p><details><summary>源代码</summary><div class="language-python line-numbers-mode" data-ext="py" data-title="py"><pre class="language-python"><code><span class="token keyword">def</span> <span class="token function">is_process_alive</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> name<span class="token punctuation">:</span> <span class="token builtin">str</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">&gt;</span> <span class="token builtin">bool</span><span class="token punctuation">:</span>
<span class="token triple-quoted-string string">&quot;&quot;&quot;
检查进程是否存活
Args:
name:
Returns:
&quot;&quot;&quot;</span>
<span class="token keyword">if</span> name <span class="token keyword">not</span> <span class="token keyword">in</span> self<span class="token punctuation">.</span>targets<span class="token punctuation">:</span>
logger<span class="token punctuation">.</span>warning<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f&#39;Process </span><span class="token interpolation"><span class="token punctuation">{</span>name<span class="token punctuation">}</span></span><span class="token string"> not found.&#39;</span></span><span class="token punctuation">)</span>
<span class="token keyword">return</span> self<span class="token punctuation">.</span>processes<span class="token punctuation">[</span>name<span class="token punctuation">]</span><span class="token punctuation">.</span>is_alive<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details><h3 id="var-timeout-10" tabindex="-1"><a class="header-anchor" href="#var-timeout-10"><span><em><strong>var</strong></em> <code>TIMEOUT = 10</code></span></a></h3><h3 id="var-chan-active-get-channel-f-name-active" tabindex="-1"><a class="header-anchor" href="#var-chan-active-get-channel-f-name-active"><span><em><strong>var</strong></em> <code>chan_active = get_channel(f&#39;{name}-active&#39;)</code></span></a></h3><h3 id="var-channel-deliver-channeldeliver-active-chan-active-passive-chan-passive-channel-deliver-active-channel-deliver-active-channel-channel-deliver-passive-channel-deliver-passive-channel-publish-publish-channel" tabindex="-1"><a class="header-anchor" href="#var-channel-deliver-channeldeliver-active-chan-active-passive-chan-passive-channel-deliver-active-channel-deliver-active-channel-channel-deliver-passive-channel-deliver-passive-channel-publish-publish-channel"><span><em><strong>var</strong></em> <code>channel_deliver = ChannelDeliver(active=chan_active, passive=chan_passive, channel_deliver_active=channel_deliver_active_channel, channel_deliver_passive=channel_deliver_passive_channel, publish=publish_channel)</code></span></a></h3><h3 id="var-process-self-processes-name" tabindex="-1"><a class="header-anchor" href="#var-process-self-processes-name"><span><em><strong>var</strong></em> <code>process = self.processes[name]</code></span></a></h3><h3 id="var-process-process-target-self-targets-name-0-args-self-targets-name-1-kwargs-self-targets-name-2-daemon-true" tabindex="-1"><a class="header-anchor" href="#var-process-process-target-self-targets-name-0-args-self-targets-name-1-kwargs-self-targets-name-2-daemon-true"><span><em><strong>var</strong></em> <code>process = Process(target=self.targets[name][0], args=self.targets[name][1], kwargs=self.targets[name][2], daemon=True)</code></span></a></h3><h3 id="var-data-chan-active-receive" tabindex="-1"><a class="header-anchor" href="#var-data-chan-active-receive"><span><em><strong>var</strong></em> <code>data = chan_active.receive()</code></span></a></h3><h3 id="var-kwargs" tabindex="-1"><a class="header-anchor" href="#var-kwargs"><span><em><strong>var</strong></em> <code>kwargs = {}</code></span></a></h3>`,48),l=[p];function c(o,i){return s(),a("div",null,l)}const u=n(t,[["render",c],["__file","manager.html.vue"]]),d=JSON.parse(`{"path":"/dev/api/core/manager.html","title":"liteyuki.core.manager","lang":"zh-CN","frontmatter":{"title":"liteyuki.core.manager","order":1,"icon":"laptop-code","category":"API","description":"class ChannelDeliver def __init__(self, active: Channel[Any], passive: Channel[Any], channel_deliver_active: Channel[Channel[Any]], channel_deliver_passive: Channel[tuple[str, d...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://vuepress-theme-hope-docs-demo.netlify.app/en/dev/api/core/manager.html"}],["meta",{"property":"og:url","content":"https://vuepress-theme-hope-docs-demo.netlify.app/dev/api/core/manager.html"}],["meta",{"property":"og:site_name","content":"LiteyukiBot 轻雪机器人"}],["meta",{"property":"og:title","content":"liteyuki.core.manager"}],["meta",{"property":"og:description","content":"class ChannelDeliver def __init__(self, active: Channel[Any], passive: Channel[Any], channel_deliver_active: Channel[Channel[Any]], channel_deliver_passive: Channel[tuple[str, d..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-21T09:59:21.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-21T09:59:21.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"liteyuki.core.manager\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-21T09:59:21.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"class ChannelDeliver","slug":"class-channeldeliver","link":"#class-channeldeliver","children":[]},{"level":3,"title":"def __init__(self, active: Channel[Any], passive: Channel[Any], channel_deliver_active: Channel[Channel[Any]], channel_deliver_passive: Channel[tuple[str, dict]], publish: Channel[tuple[str, Any]]) -> None","slug":"def-init-self-active-channel-any-passive-channel-any-channel-deliver-active-channel-channel-any-channel-deliver-passive-channel-tuple-str-dict-publish-channel-tuple-str-any-none","link":"#def-init-self-active-channel-any-passive-channel-any-channel-deliver-active-channel-channel-any-channel-deliver-passive-channel-tuple-str-dict-publish-channel-tuple-str-any-none","children":[]},{"level":3,"title":"class ProcessManager","slug":"class-processmanager","link":"#class-processmanager","children":[]},{"level":3,"title":"def __init__(self, lifespan: 'Lifespan') -> None","slug":"def-init-self-lifespan-lifespan-none","link":"#def-init-self-lifespan-lifespan-none","children":[]},{"level":3,"title":"def start(self, name: str) -> None","slug":"def-start-self-name-str-none","link":"#def-start-self-name-str-none","children":[]},{"level":3,"title":"def start_all(self) -> None","slug":"def-start-all-self-none","link":"#def-start-all-self-none","children":[]},{"level":3,"title":"def add_target(self, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None","slug":"def-add-target-self-name-str-target-target-func-args-tuple-kwargs-any-none","link":"#def-add-target-self-name-str-target-target-func-args-tuple-kwargs-any-none","children":[]},{"level":3,"title":"def join_all(self) -> None","slug":"def-join-all-self-none","link":"#def-join-all-self-none","children":[]},{"level":3,"title":"def terminate(self, name: str) -> None","slug":"def-terminate-self-name-str-none","link":"#def-terminate-self-name-str-none","children":[]},{"level":3,"title":"def terminate_all(self) -> None","slug":"def-terminate-all-self-none","link":"#def-terminate-all-self-none","children":[]},{"level":3,"title":"def is_process_alive(self, name: str) -> bool","slug":"def-is-process-alive-self-name-str-bool","link":"#def-is-process-alive-self-name-str-bool","children":[]},{"level":3,"title":"var TIMEOUT = 10","slug":"var-timeout-10","link":"#var-timeout-10","children":[]},{"level":3,"title":"var chan_active = get_channel(f'{name}-active')","slug":"var-chan-active-get-channel-f-name-active","link":"#var-chan-active-get-channel-f-name-active","children":[]},{"level":3,"title":"var channel_deliver = ChannelDeliver(active=chan_active, passive=chan_passive, channel_deliver_active=channel_deliver_active_channel, channel_deliver_passive=channel_deliver_passive_channel, publish=publish_channel)","slug":"var-channel-deliver-channeldeliver-active-chan-active-passive-chan-passive-channel-deliver-active-channel-deliver-active-channel-channel-deliver-passive-channel-deliver-passive-channel-publish-publish-channel","link":"#var-channel-deliver-channeldeliver-active-chan-active-passive-chan-passive-channel-deliver-active-channel-deliver-active-channel-channel-deliver-passive-channel-deliver-passive-channel-publish-publish-channel","children":[]},{"level":3,"title":"var process = self.processes[name]","slug":"var-process-self-processes-name","link":"#var-process-self-processes-name","children":[]},{"level":3,"title":"var process = Process(target=self.targets[name][0], args=self.targets[name][1], kwargs=self.targets[name][2], daemon=True)","slug":"var-process-process-target-self-targets-name-0-args-self-targets-name-1-kwargs-self-targets-name-2-daemon-true","link":"#var-process-process-target-self-targets-name-0-args-self-targets-name-1-kwargs-self-targets-name-2-daemon-true","children":[]},{"level":3,"title":"var data = chan_active.receive()","slug":"var-data-chan-active-receive","link":"#var-data-chan-active-receive","children":[]},{"level":3,"title":"var kwargs = {}","slug":"var-kwargs","link":"#var-kwargs","children":[]}],"git":{"createdTime":1724031826000,"updatedTime":1724234361000,"contributors":[{"name":"snowy","email":"snowykami@outlook.com","commits":5}]},"readingTime":{"minutes":2.37,"words":712},"filePathRelative":"dev/api/core/manager.md","localizedDate":"2024年8月19日","autoDesc":true}`);export{u as comp,d as data};