したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

botにこんな機能があったらいいなスレ

99名無しさん:2011/08/05(金) 18:59:28
初心者スレにmentions,home_timeline重複取得に関して質問があったので、ちょっと書いておきます。

EB2はなぜか取得にscince_idパラメータを使用していません。重複削除には時間を使用しています。
(おそらくEB1で、ファイルを保存したりしないようにしようと考えたのでしょう。)

$limittime = $now - $minute * 70; //取りこぼしを防ぐために10秒多めにカウントしてる

しかもちょっと計算式違いますw $limittime = $now - ($minute * 60 + 10);でしょう
これに、GAE-cronのルーズさも加わって、おそらく正確には処理できていないと思われます。

$tweet_id = (string)$tweet->id;
if($limittime <= $time && $this->_latestReply < $tweet_id){ .....

「こいつバカじゃないの?↑の行で処理しているじゃん!」と思うかもしれませんが、
Snowflakeの導入でステータスIDは整数のintを超えていてfloat扱いになって以降、このへんかなり怪しいです。
詳しくは http://ideone.com/LWSm3 参照

$this->_latestReplyの内容はlog.datに書きこまれた、最後にリプライしたステータスIDですが、
リプライ処理、TL処理の両方で兼用しているので、トレースすればわかるのですが、どっちの最後の値かわかりません。
両方終えた大きな方です。
mentions、home_timelineに同じ$this->_latestReplyを使うと、どちらかで取りこぼしの”可能性”が出てきます。

なので、修正内容は、
1.リプライ、TLで最後にリプライしたステータスIDを別々に保存する。
2.保存したステータスIDをscince_idパラメータにして、mentions、home_timelineを取得する。
の修正が必要になります。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板