前回まで
-
プログラム準備完了
- 必須項目実装完了
- 追加項目実装完了
- インフラ準備完了
-
最終実行準備
- ライブラリに不具合?
- それでも止まったときのために
- 取得開始!
最終実行準備の前に
ここのところ不穏当な話が多くてやですね。
- Twitterの身売り話が頓挫して、なんか不穏当な方向に
- 「みんな使ってるし」という理由で使い出したTweepyがメンテ終了とかアナウンスされた
(その後引き継ぎされた?っぽいですが)
後者は、どうにかなるとしても前者は不安です。いくらなんでも年末までTwitterが保たないとか無いと思いますが、今後、というのは考えた方が良いのかなあ、河岸を移すのは苦手なタイプなのですが。
ライブラリ不具合への対処
「プログラム準備編(2)」で指摘をされて実行環境では直しておかないと、と思っていたTweepyのStream不具合に手をつけます。
# python
Python 3.5.2 (default, Sep 24 2016, 05:23:05)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tweepy
>>> tweepy.__file__
'/usr/local/lib/python3.5/site-packages/tweepy/__init__.py'
>>>
これでtweepyのインストールパスが得られました。あとは当該ファイル(streaming.py)をこんな風に直して、共有フォルダ経由で上書きコピー。ミッション完。
不具合対処、もう一度。
ところが、この対応では不十分であるという話が、ド直前になって飛び込んできました。たまたま上記修正後の不具合確認で流していた際に例外エラーが発生したことで問題発生に気づき、github上のissueをチェックして発見。
こんな感じの修正を施して、再度上書きコピー。今度こそミッション完。
それでも落ちる可能性への対処
上記の例外エラーは、プログラム内部でトラップされ、即座にTwitterに再接続されましたが、他に何が起きるかわからない事を考えると、プログラムが、何の前触れも無く落ちる事への対処を考えないといけません。
幸いと言うべきか、検索して見つかったこちらを利用することにします。もう五体投地で感謝を表さざるを得ません。
実行後、プロセスをkillしてみると、自動で立ち上げ直してくれます。なんという便利。
まあ、ここまでやっても落ちるときは落ちるよなぁ、というのは思うところなのですが、十重二十重とは言わずとも「エラー通知で初動を楽に」「例外無視して自動再接続」「プロセス監視で再起動」の3つもあれば、3ヶ月はなんとかなるでしょう。
自分がうっかりNASのアップデートとかルータの設定更新するとかやらない限りは。
実行開始!
とりあえずこれで準備が全部そろいました。多分。
途中で仕事が発火して滞りましたが、まあ直前でも全部そろって、ある程度のテストも出来たのでよしとしましょう。
そんなわけで、当選発表(隠語)の2日前、10/27にテスト用データをdropし、運用を開始しました。
ひとまず、当選発表(隠語)のラッシュ時でも問題無く取得が出来ています。成功……っぽい?
とりあえず1週間ほど様子を見てみることにします。
このあとの予定
とりあえず、時間刻みベースのツイート数を集計できるようにしたい所です。できれば実行環境に下手な影響が出ないようにしたい所なのですが、どうやったらいいでしょうね?
(まだ続く。)