[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
この機能を使うにはJavaScriptを有効にしてください
|
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
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板