トップ 最新

ただのにっき

2012-03-04(日) [長年日記]

Kindle向けニュース配信システムをHeroku上に移動した

約1年ほど前から稼動していた各種ニュース(といっても現時点では日経新聞とInternet Watchだけ)をKindleに配信するシステムを、自前サーバ上のcronからHeroku上のClockworkに移植して、今日から実用開始した。

Kindle向けにニュースを配信する仕組みとしてはレシピが豊富なCalibreを使うのがメジャーなんだけど、クライアントPCを24H稼動しておくというのが節電が叫ばれるいまどきのソリューションとしてはイマイチと感じていて、長らく自分のサーバで回していたんだけど、もうちょっとPaaS(というかHeroku)を使い慣れておきたいと思っていたので練習台に。

Herokuでcron相当のサービスというとClockworkを使うということらしいので、1時間ごとに起きるように組んで、実際に配信するかどうかの判断は別途させるようにした。clockプロセスひとつでDynoを1個使ってしまうので、UIはなし。セコい(笑)。じゃあ設定はどこから与えるかというと、環境変数で指定したURLから毎回読み込むようにしたのだった。Dropboxにでも入れておけばどこからでも設定変更ができるという塩梅。

Heroku上でmobiファイルを生成させるためにkindlegenをgem化したり、メール送信にActiveMailerを使おうと思ったがRailsじゃなければその下で使っているMailを素で使ったほうが楽だとわかったり。もっとも、一番苦労したのはUTCで動いているHerokuに適切なTZを与えることだったりして(Time#localtimeに引数があるなんて初めて知ったよ)。まぁいろいろ勉強になります。

最初はちゃんとWeb UIをつけて誰でも登録して使えるようにしたら便利じゃね? と思っていたんだけど、人のサイトを勝手にスクレイピングして他人に配信するのはどう考えても違法なのであった。あとSendGridのfreeプランはメール送信数に制限があるし(ので各自で動かさないといけない)。とはいえコードは公開してあるもののドキュメントないから誰も動かせないだろうな(笑)。

こんなふうに自前で生成した「電子書籍」をメールで簡単にリーダーに送れて、それをクラウド上で管理できるというのがKindle最大のメリットで*1、このPersonal Documentサービスが完全におれをKindleにロックインしてしまっているのだよなぁ。他社でもこれ相当のことができないと、何かあったときの移転先に困るんだが。KoboやSONYには類似のサービスないのかな。

Tags: kindle heroku

*1 少なくとも自分で電子書籍を作成できるギークにとっては、だけど。