Closed mix3 closed 6 years ago
Yesterday より以前だったら throw :finish
これはすでにされてましたね。失礼しました
どうもTwitter連携して以降のツイートしか検索できないみたいなので、連携直後は直近の発言しか出てこないのですぐに empty になりループを抜けずにAPIを叩いてしまうようです
tweets が空だったら thow :finish
をするとこれについてはぐっと改善しそう
ご対応ありがとうございます close します
手元で動かしてみてログイン後のトップページで 10sec 掛かっていて print デバッグでどこかなと探ったら
refresh_wordcaches
で必ず50回API叩くループがあってそこが圧倒的に時間掛かるようでしたrefresh_wordcaches
のループを改善した方が良さそうです。ぱっと思いついたのは、thow :finish
throw :finish
などでループを減らす。
他には since_id を使うと以前検索したものより新しいのだけ検索できるのでそれを利用して例えば、 スコアリングに必要なユーザの発言をDBに保存(2日目前まで保存、日が経って2日目以降のがあったら消す)しておいて since_id で検索範囲を常に絞れるようにする
などがあるかなと思います。
まだこれでも日を空けて来た人の初回が重くなるのは防げないので何か工夫が必要そうで、自分だと同期処理でうまくやる方法が思いつかないので非同期処理にしちゃうかもしれないです。例えば以下みたいな。
あとは TwitterAPI について検索していたら Account Activity API (まだBetaみたいですが)が Webhook で UserStreaming API の代替になるものが来るみたいなので、こっちを使えるようになるとAPI叩く回数減らすとか考えなくて良くなるので全部解決しそうな雰囲気を感じました
ということで
refresh_wordcaches
のループを減らすところからやると良いのではないかという感想でした。ご参考までに。