~vikanezrimaya/kittybox

7661ee077c9a8638d5cbe1be871b5f7230aa9377 — Vika 1 year, 6 months ago d1327ed async-std
database: fix the hang in production
2 files changed, 10 insertions(+), 12 deletions(-)

M src/database/file/mod.rs
M src/database/redis/mod.rs
M src/database/file/mod.rs => src/database/file/mod.rs +5 -6
@@ 501,14 501,13 @@ impl Storage for FileStorage {
                    let mut posts_iter = children
                        .into_iter()
                        .map(|s: serde_json::Value| s.as_str().unwrap().to_string());
                    if after.is_some() {
                        loop {
                            let i = posts_iter.next();
                            if &i == after {
                                break;
                    if let Some(after) = after {
                        for s in posts_iter.by_ref() {
                            if &s == after {
                                break
                            }
                        }
                    }
                    };
                    let posts = stream::iter(posts_iter)
                        .map(|url: String| async move { self.get_post(&url).await })
                        .buffered(std::cmp::min(3, limit))

M src/database/redis/mod.rs => src/database/redis/mod.rs +5 -6
@@ 218,14 218,13 @@ impl Storage for RedisStorage {
        if feed["children"].is_array() {
            let children = feed["children"].as_array().unwrap();
            let mut posts_iter = children.iter().map(|i| i.as_str().unwrap().to_string());
            if after.is_some() {
                loop {
                    let i = posts_iter.next();
                    if &i == after {
                        break;
            if let Some(after) = after {
                for s in posts_iter.by_ref() {
                    if &s == after {
                        break
                    }
                }
            }
            };
            async fn fetch_post_for_feed(url: String) -> Option<serde_json::Value> {
                return Some(serde_json::json!({}));
            }