mirror of
https://github.com/actix/actix-extras.git
synced 2025-08-30 19:10:20 +02:00
Deploying to gh-pages from @ 798a5d6d0e
🚀
This commit is contained in:
@@ -176,7 +176,7 @@
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">RedisActor</span> {
|
||||
<span class="doccomment">/// Start new `Supervisor` with `RedisActor`.</span>
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">start</span><span class="op"><</span><span class="ident">S</span>: <span class="ident">Into</span><span class="op"><</span><span class="ident">String</span><span class="op">></span><span class="op">></span>(<span class="ident">addr</span>: <span class="ident">S</span>) <span class="op">-</span><span class="op">></span> <span class="ident">Addr</span><span class="op"><</span><span class="ident">RedisActor</span><span class="op">></span> {
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">start</span><span class="op"><</span><span class="ident">S</span>: <span class="ident">Into</span><span class="op"><</span><span class="ident">String</span><span class="op">></span><span class="op">></span>(<span class="ident">addr</span>: <span class="ident">S</span>) -> <span class="ident">Addr</span><span class="op"><</span><span class="ident">RedisActor</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">addr</span> <span class="op">=</span> <span class="ident">addr</span>.<span class="ident">into</span>();
|
||||
|
||||
<span class="kw">let</span> <span class="ident">backoff</span> <span class="op">=</span> <span class="ident">ExponentialBackoff</span> {
|
||||
@@ -203,7 +203,7 @@
|
||||
.<span class="ident">call</span>(<span class="ident">req</span>)
|
||||
.<span class="ident">into_actor</span>(<span class="self">self</span>)
|
||||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">res</span>, <span class="ident">act</span>, <span class="ident">ctx</span><span class="op">|</span> <span class="kw">match</span> <span class="ident">res</span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">conn</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">conn</span>) => {
|
||||
<span class="kw">let</span> <span class="ident">stream</span> <span class="op">=</span> <span class="ident">conn</span>.<span class="ident">into_parts</span>().<span class="number">0</span>;
|
||||
<span class="macro">info!</span>(<span class="string">"Connected to redis server: {}"</span>, <span class="ident">act</span>.<span class="ident">addr</span>);
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
|
||||
<span class="ident">act</span>.<span class="ident">backoff</span>.<span class="ident">reset</span>();
|
||||
}
|
||||
<span class="prelude-val">Err</span>(<span class="ident">err</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="prelude-val">Err</span>(<span class="ident">err</span>) => {
|
||||
<span class="macro">error!</span>(<span class="string">"Can not connect to redis server: {}"</span>, <span class="ident">err</span>);
|
||||
<span class="comment">// re-connect with backoff time.</span>
|
||||
<span class="comment">// we stop current context, supervisor will restart it.</span>
|
||||
@@ -241,7 +241,7 @@
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">actix::io::WriteHandler</span><span class="op"><</span><span class="ident">io::Error</span><span class="op">></span> <span class="kw">for</span> <span class="ident">RedisActor</span> {
|
||||
<span class="kw">fn</span> <span class="ident">error</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">err</span>: <span class="ident">io::Error</span>, <span class="kw">_</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident"><span class="self">Self</span>::Context</span>) <span class="op">-</span><span class="op">></span> <span class="ident">Running</span> {
|
||||
<span class="kw">fn</span> <span class="ident">error</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">err</span>: <span class="ident">io::Error</span>, <span class="kw">_</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident"><span class="self">Self</span>::Context</span>) -> <span class="ident">Running</span> {
|
||||
<span class="macro">warn!</span>(<span class="string">"Redis connection dropped: {} error: {}"</span>, <span class="self">self</span>.<span class="ident">addr</span>, <span class="ident">err</span>);
|
||||
<span class="ident">Running::Stop</span>
|
||||
}
|
||||
@@ -250,13 +250,13 @@
|
||||
<span class="kw">impl</span> <span class="ident">StreamHandler</span><span class="op"><</span><span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">RespValue</span>, <span class="ident">RespError</span><span class="op">></span><span class="op">></span> <span class="kw">for</span> <span class="ident">RedisActor</span> {
|
||||
<span class="kw">fn</span> <span class="ident">handle</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">msg</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">RespValue</span>, <span class="ident">RespError</span><span class="op">></span>, <span class="ident">ctx</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident"><span class="self">Self</span>::Context</span>) {
|
||||
<span class="kw">match</span> <span class="ident">msg</span> {
|
||||
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="prelude-val">Err</span>(<span class="ident">e</span>) => {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">tx</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">queue</span>.<span class="ident">pop_front</span>() {
|
||||
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="ident">tx</span>.<span class="ident">send</span>(<span class="prelude-val">Err</span>(<span class="ident">e</span>.<span class="ident">into</span>()));
|
||||
}
|
||||
<span class="ident">ctx</span>.<span class="ident">stop</span>();
|
||||
}
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">val</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="prelude-val">Ok</span>(<span class="ident">val</span>) => {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">tx</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">queue</span>.<span class="ident">pop_front</span>() {
|
||||
<span class="kw">let</span> <span class="kw">_</span> <span class="op">=</span> <span class="ident">tx</span>.<span class="ident">send</span>(<span class="prelude-val">Ok</span>(<span class="ident">val</span>));
|
||||
}
|
||||
@@ -268,7 +268,7 @@
|
||||
<span class="kw">impl</span> <span class="ident">Handler</span><span class="op"><</span><span class="ident">Command</span><span class="op">></span> <span class="kw">for</span> <span class="ident">RedisActor</span> {
|
||||
<span class="kw">type</span> <span class="prelude-ty">Result</span> <span class="op">=</span> <span class="ident">ResponseFuture</span><span class="op"><</span><span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">RespValue</span>, <span class="ident">Error</span><span class="op">></span><span class="op">></span>;
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">handle</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">msg</span>: <span class="ident">Command</span>, <span class="kw">_</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident"><span class="self">Self</span>::Context</span>) <span class="op">-</span><span class="op">></span> <span class="ident"><span class="self">Self</span>::Result</span> {
|
||||
<span class="kw">fn</span> <span class="ident">handle</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">msg</span>: <span class="ident">Command</span>, <span class="kw">_</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident"><span class="self">Self</span>::Context</span>) -> <span class="ident"><span class="self">Self</span>::Result</span> {
|
||||
<span class="kw">let</span> (<span class="ident">tx</span>, <span class="ident">rx</span>) <span class="op">=</span> <span class="ident">oneshot::channel</span>();
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">cell</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">cell</span> {
|
||||
<span class="self">self</span>.<span class="ident">queue</span>.<span class="ident">push_back</span>(<span class="ident">tx</span>);
|
||||
|
Reference in New Issue
Block a user