2018-04-03

更新通知についてもうちょっと補足

先日の
https://toyoda-eizi-ja.blogspot.jp/2018/04/wis-portalatomurl.html
の続き。

一昔前はRSSまたはAtom
Feedがいろんなものの標準インターフェイスになるんじゃないかというような期待感もあったのだけれど、どういうわけだか人がブログなどのオンライン記事を読むメディアとしてのRSSリーダーは衰退して、自動処理の部品を提供してくれるような期待もなくなったものだから、自分で作らなきゃいけない。

えっと、単にパースするんじゃなくて、問題はその後ね。

今回の作例
https://gist.github.com/etoyoda/f5d52752bc8fb3ed79162377c73beb10
はRSS/Atomのかわりにプレーンテキストのリストを読むので、XMLパーザがいらないぶん単純だけれど基本的にはあまり変わらない。

でもってまずは重複ダウンロード回避から。定期的にフィードを読んで、そこにかかれているURL全部をダウンロードすると、新着がなくても無駄にダウンロードしてしまう。まずは新着があるときだけダウンロードするようにしようとするのが、
if-none-match
の使用で、とりあえずリクエストにはつけているが、どういうわけか
304じゃなくて200で毎回帰ってきてしまう。しょうがないので、というか仮にそれがうまく行っても、フィードではなくその中に書かれているURLについて重複ダウンロードしないように管理したいので、DBMSを使いたくなかったのでGDBMを使っている。

このツールの特色めいたものが、URLパターンマッチによるフィルタで、もともとWISではsynへのパラメタで色々指定して絞り込む使い方が予定されているのだけど、どうも思うように機能していない(3月以来苦戦中、ある程度絞り込むとなぜか空のリストを返してしまう)から多め(「全部盛り」的な)フィードにせざるを得ず、ダウンロードする側での絞り込みが必要だったのです。

結局「全部盛り」フィードしか使わないなら静的ファイルでフィードを置く可能性も出てきてサーバ負荷的には望ましいですね。

あと、出力データフォーマット。とりあえずバラバラファイルを出力するようにしているが、ファイルシステムへの負担が大きいのでzipやtarでも出力するのが本当はいいのだろう。

0 件のコメント:

コメントを投稿