はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

Slack RSS integrations のfetching(polling)の仕様 (About specifications of fetching(polling) in Slack RSS integrations)

Slack RSS integrations のfetching(polling)の仕様 (About specifications of fetching(polling) in Slack RSS integrations)

2017年9月時点の情報です.

SlackのRSS integrationsに登録していたフィードがうまく動作しなかったとき, RSS integrationsのfetch(poll)のタイミングなどの仕様をサポートに聞いてみたのでメモ.

Slack RSS Integration

RSSフィードのitem保存件数

Slackのフリープランでの制限は,以下のようになっている.

Slack は、お好きなだけフリープランでご利用いただくことができますが、フリープランには以下のような制限があることに注意してください : - メッセージの表示制限 — 閲覧と検索の範囲が、直近のメッセージ10,000件に制限されます。

get.slack.help

つまり,RSS integrationsのみ使うと, フィードのitemは1万件保存できる. ほかのRSS Readerでは30日間保存だったりするが,Slackの場合時間制限はない.

更新間隔 (update interval)

登録したRSS feedが実際にいつfetch(poll)されたかは, RSS App から Settings (Browse Apps > RSS > Edit configuration) から確認できる.

fetch of RSS Apps

I should have said that it happens within 15 minutes. If you're seeing it happening every 5 minutes ten that's faster than what we try to target for our interval.

Slack RSS integrationsでは,15分以内に更新することを目標に動作しているようです.

<ttl>要素を見ているか

  1. Does Slack RSS app use <ttl>? Our RSS app does not take into consideration the ‘‘ tag, but instead, we just poll the feed for updates every 15 minutes.

どうやら,<ttl>は見ていないようで,上記のように,最大15分間隔で更新するようです.

どのように新しいitemを更新(pick up) しているか

各itemのpubDateの時間を見て更新しているようです.

For example, let's say that our RSS app runs and picks up all items with a pubDate value within the following time range:

from Sep 28 at 21:45 (this is the last time that it picked up any items)

to Sep 28 at 22:00 (this will become the new placeholder)

If after the RSS app picks up those items an then an item from Sep 28 at 21:45 gets added, that item will not be picked up because the next time that your RSS app checks your feed, it will check the following interval:

from Sep 28 at 22:00 (this is the last time that it picked up any items)

to Sep 28 at 22:15 (this will become the new placeholder)

つまり,前回の新しいitemをpick up した時間と今fetch した時間の間にある'pubDate'のitemのみを更新するようです.

なので,pubDateがfeedへの追加の時間になってないような設計がよろしくないRSS feedの場合,Slack RSS integrationsでは正しく読めない場合があります.