ここに公開する。
https://github.com/uozias2/twcrawler-open
基本はここのサンプルの通りだが、
http://qiita.com/mosa_siru/items/ea2c5f7faec66347a10f
streaming apiを使ってみたりいろいろいじった
使ってるもの、使い方
・deviseとomniauthでtwitterにログイン
・twitter gemでtwitter apiにアクセス
・mongoidを使ってmongodbに収集したツイートとかユーザのデータを入れる
・resqueを使って非同期処理
できること
・streaming apiからユーザidを収集する
・収集したユーザ自身とそのフォロワー、フレンドの一ヶ月以内のツイートを収集する(3200件制限があるけど)
・レートリミットに達したらちゃんと待つ
ちょっと変なところ
dataがdatumの複数形だということを知らないでscaffoldで作っちゃったので、
コントローラとかモデルの名前が変な感じになってるかもしれない
以下は環境を整える手順のメモ
準備
yum
sudo yum -y install yum-priorities
git
yum install git
rbenv
本体
http://tsuchikazu.net/linux_ruby_on_rails_install/
mkdir src
cd src
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
mongodb 2.4.8
yumレポジトリの追加
http://kzy52.com/entry/2013/07/15/225402
# /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=0
インストール
$ sudo yum install mongo-10gen mongo-10gen-server —enablerepo=10gen
$ sudo service mongod start
$ sudo chkconfig mongod on
redis 2.6.17
インストール
http://9ensan.com/blog/server/sakura-vps-redis/
wget http://download.redis.io/releases/redis-2.6.17.tar.gz
tar zxvf redis-2.6.17.tar.gz
cd redis-2.6.17
make
sudo make install
デーモン化
http://www.dollpaper.com/info/513.html
$ mkdir /etc/redis
$ mkdir -p /var/redis/6379
$ cp utils/redis_init_script /etc/init.d/redis_6379
$ cp redis.conf /etc/redis/6379.conf
$ vi /etc/redis/6379.conf
#daemonize no
daemonize yes
#pidfile /var/run/redis.pid
pidfile /var/run/redis_6379.pid
#logfile stdout
logfile /var/log/redis_6379.log
#dir ./
dir /var/redis/6379
$ vi /etc/init.d/redis_6379
# chkconfig: - 58 74
# description: redis_6379 is the redis daemon.
$ chkconfig --add redis_6379
$ chkconfig redis_6379 on
$ /etc/init.d/redis_6379 start
$ netstat -an | grep 6379
後は、こんな感じでアプリを落として起動
git clone https://github.com/uozias2/twcrawler-open.git cd twcrawler bundle install bundle exec rails s -d QUEUE=get_tweets nohup rake environment resque:work >> result.log &
!ただし、app/models/client.rbとconfig/initializers/devise.rbにtwitter developersのページからもらったシークレットキーとトークンをいれないとダメです。