ホーム > タグ > BOT

BOTが凍結された件

私がTwitter上で運用している2つのBOTがAPI凍結(Suspended)されました。
それぞれ4月と5月なので結構な日数が経ってるんですけども。

Twitter Application Managementの該当ページから飛べるサポートページに記載されている通りフォームから理由を問い合わせてみました。
すぐ来た自動返信メールに改善箇所を書いて送らないと解除しねーよ?的なこと書いてるんですけど、その前に理由がわからないし、ちゃんとサポートから連絡があるんでしょうか。いまいちやり方がわかりません・・・

まぁ、現在CRONからのAPIアクセス止めてるし、怪しいと思われる部分は改善してるので(特にフォロー関係)、ちょっと様子見て連絡が来ないようならそのメールに返信してみましょうか。

しかし、これ日本法人はタッチしてない部分なんですかね。
運営がアメリカの法人なので英語でやり取りするのは当たり前なんですけど、じゃあ日本法人は何やってんの?とシンプルに思った次第。

EasyBotterの負荷状況

※確か深夜?の4時から1時間かけて書いたのに公開したらまっさらになってました…
 リビジョン全て見てもデータベース見ても無いし、偶然のタイミングで0バイトデータが書き込みされてしまったんでしょうかね?
 というわけで、手抜きバージョンでお届けいたします(◞‸◟)



サーバ移行のきっかけについては過去何度か書いてますが、ずっとWordPressが問題だと思っていたのです。しかし、いくらプラグインや.htaccessで軽量化やスパム等のアクセス遮断をしても一向に改善する気配を見せない。単純に契約プラン(サーバ能力)に対して負荷が高すぎてその程度では改善できないのかと。

そして、さくらインターネットのスタンダードプランをお試し契約し、まずBOT(EasyBotter)を移してみたら・・・?


CORESERVERの負荷率
負荷率

さくらインターネットのCPU使用時間
CPU使用時間


さくらインターネットに移転したのは1月12日です。
当日はFTPで万単位のファイルをダウンロードしたり色々処理してる関係で高めの数値が出てますが、その後は明らかに減ってますね。

逆にさくらインターネット側はBOT2つとCRON1つ(1つは引き続きGAE-Cronで運用してます)だけなのにこの有様。色々見てみたところCPU使用時間が2時間近くなると優先度を下げられ503が頻発するようになるらしいので、転送量がたかだか1~2MBということを考えたら相当ですよね。

とは言っても、EasyBotterに問題があるわけではなく(もちろんもっと軽量化させることは出来るでしょうが)、単純に2~3分に1回呼び出してそこで複数の処理をさせていることが問題なわけで・・・

これはもうレンタルサーバで運用すること自体アウトな気がしないでもないです。
かと言って、VPSだのクラウドだの専有だのに手を出すほどでもないし、そうなるとやっぱり自宅サーバ?とかなっちゃったりしますけど、電気代含めたコストやメンテナンス等の手間考えたらVPSでいいじゃない!となるし、八方塞がり感がありますけど、転送量自体は上に書いたようにFD1~2枚程度なので、転送量によって課金するシステム利用すればいいのでは!と。

AWSがそうだった気がしますけど、とりあえず色々調べてみましょうかね。

EasyBotterを最新版にアップデート&よもやま話

既に2.0.4をAPI1.1に対応させていたのですが、せっかく公式が2.1(現在2.1.2)をリリースしているので導入しました。

微妙にバグがある気がしないでもないですが、特に問題となる感じでもないので大丈夫でしょう(適当)。
そして、2.0.4でちょこちょこ追加してきた機能をまっさらにしてしまいました。
要するに、バックアップ無しで上書きしたというアホな子全開モードで、それはそれでしょうがない、大したことしてないしということで忘れることにしましょう(震え声)。


話しは変わりますが、本日Twitter用クライアントアプリのShootingStarとtwicleがユーザトークン数上限(10万だったかな?)に達してしまったようですね。
新規ユーザなり追加アカウントなりが登録出来なくなるということですが、純正クライアント以外は同様の問題が起きるということで、Twitter社からの発表後に開発継続中止や公開中止をしたクライアントアプリ作者は少なくなかったと記憶しています。

Twitter社としては、純正以外=サードパティのアプリを使われるということは、広告等の絡みでできるだけ排除したいという意向なのかもしれませんが、ユーザの利便性を損なうということでもありますからね。

とは言っても、純正アプリユーザが80%以上だったと記憶してますので、大多数のユーザにはどうでもいいことなのでしょう。
むしろ、わざわざ純正以外を利用するユーザはヘビーユーザが多いため、負荷の観点から煙たい存在なのかもしれません。当人達は声が大きい割に意識が薄いどころか被害者意識すら持っていますからね。
そのへんはいわゆるネットインフラ(帯域)と共通するところがあるでしょう。

なんて偉そうに書いている私もPOST数10万オーバーのヘビーユーザだったりしますがw
フォロワーに自分以上がゴロゴロしてるから感覚麻痺してるのですよ(;´Д`)

EasyBotterを新API仕様に対応させる

ここではEasyBotterを例としますが、不定期に行うフォロー整理(スパムやフォロワー数稼ぐためだけのフォローをブロックorスパム報告)にて自動フォロー返し機能が働いてないことに気付きました。
最近レンタル中のCORESERVERが不調だったことやGAEの仕様変更の噂をちらほら聞いていたのでその線かと思いつつソースを眺めてみたりもして、普通に調べたらTwitterのAPIの呼び出しURLに変更があり、9日が旧版の期限切れだったようです、多分。

API Documentを参考に。

旧バージョン

    function setUpdate($value){        
        $url = "https://twitter.com/statuses/update.xml";
        return $this->_setData($url,$value);
    }            
    function getFriendsTimeline(){
        $url = "http://twitter.com/statuses/friends_timeline.xml";
        return $this->_getData($url);                
    }
    function getReplies($page = false)
    {
        $url = "http://twitter.com/statuses/replies.xml";        
        if ($page) {
            $url .= '?page=' . intval($page);
        }
        return $this->_getData($url);
    }        
    function getFriends($id = null)
    {
        $url = "http://twitter.com/statuses/friends.xml";        
        return $this->_getData($url);
    }    
    function getFollowers()
    {
        $url = "http://twitter.com/statuses/followers.xml";        
        return $this->_getData($url);
    }    
    function followUser($screen_name)
    {    
        $url = "http://twitter.com/friendships/create/".$screen_name.".xml";    
        return $this->_setData($url);
    }

新バージョン
    function setUpdate($value){        
        $url = "http://api.twitter.com/1/statuses/update.xml";
        return $this->_setData($url,$value);
    }            
    function getFriendsTimeline(){
        $url = "http://api.twitter.com/1/statuses/friends_timeline.xml";
        return $this->_getData($url);                
    }
    function getReplies($page = false)
    {
        $url = "http://api.twitter.com/1/statuses/mentions.xml";        
        if ($page) {
            $url .= '?page=' . intval($page);
        }
        return $this->_getData($url);
    }        
    function getFriends($id = null)
    {
        $url = "http://api.twitter.com/1/statuses/friends.xml";        
        return $this->_getData($url);
    }    
    function getFollowers()
    {
        $url = "http://api.twitter.com/1/statuses/followers.xml";        
        return $this->_getData($url);
    }    
    function followUser($screen_name)
    {    
        $url = "http://api.twitter.com/1/friendships/create/".$screen_name.".xml";    
        return $this->_setData($url);
    }

一応これで動作してるので大丈夫・・・なはずです。

GAE-Cronが動作しない不具合

GAE-Cron Club

【2010/11/12】日本時間2010/11/11(木)19時過ぎあたりから、GAE-Cron自体が動作しない現象が発生している可能性があります。
cron.yamlでgaetimerをschedule: every 1 minutesにしていますが、これがその辺りで停まってしまった模様。
schedule: every 3 minutesなど、間隔を増やせば動きだす可能性はありますが、保証は致しかねます。
Google側の不具合もしくは制限と思われるため、GAE-Cron側では抜本的な対策は取れそうにありません。


自分が管理しているBOT2つも11/12の4時以降止まっていました。
そこで、0.01bのままだったのを0.02にアップデートすると共に上記変更を行いました。
一応2分間隔であれば大丈夫なようですが、念のため。

で、今のところ無事動いてるようです。
ログを取っていないので影響はわかりませんが。

しかし、Googleのサービスは地味に不具合が起きますね。
GAEについてのアナウンスも出ていないようですし困ったもんです。

1 / 212
コンテンツ
Information
「君の名は。」Blu-rayコレクターズ・エディション 4K Ultra HD Blu-ray同梱5枚組 (初回生産限定)(早期購入特典:特製フィルムしおり付き)
[君の名は。コレクターズ・エディション]

【Amazon.co.jp限定】劇場版 ソードアート・オンライン -オーディナル・スケール-(メーカー特典:「原作イラストレーターabec描き下ろし キャンバスイラストカード」付)(オリジナル特典:「描き下ろしイラストB1布ポスター(アスナ)」「描き下ろしイラストブックカバー(アスナ)」付)(完全生産限定版) [Blu-ray]
[劇場版 ソードアート・オンライン]

【Amazon.co.jp限定】「劇場版トリニティセブン -悠久図書館と錬金術少女-」(描き下ろしA3ポスター付)(メーカー特典:劇場告知B2告知ポスター付) [Blu-ray]
[劇場版トリニティセブン]

Newニンテンドー2DS LL ブラック×ターコイズ
[Newニンテンドー2DS LL]

この素晴らしい世界に祝福を! 2第1巻限定版 [Blu-ray]
[この素晴らしい世界に祝福を!2 第1巻]

きんいろモザイク Pretty Days( イベントチケット優先販売申込券 ) [Blu-ray]
[きんいろモザイク Pretty Days]

【Amazon.co.jp限定】未確認で進行形 Blu-ray BOX(B2布ポスター付き)
[Amazon限定 未確認で進行形BD-BOX]

RSS Reader
検索
Feeds