matrix-org/matrix-hookshot

RSS/Atom: Allow to set up different refresh times per feed

Opened this issue · 4 comments

From my understanding one can set pollIntervalSeconds in global config.yml to define how often feeds are checked. I think it would be very handy to allow to set different refresh times per each feed.

Another option could be to actually track how often a feed has new updates, and dynamically configure a poll interval.

Like the idea ;)

(edited) Below are examples of unpredictable RSS feeds that serve for monitoring. If they are in the wrong bucket when they make new entries, this goes against the point of monitoring. Maybe the auto-tuning algorithm can apply a regexp to detect common RSS sources, whose timing patterns were hard-coded in the bot?

Some examples from experience with OpenStreetMap, the Wikipedia of maps.

  • Edit monitoring on a region of interest can be done via RSS, among other means. Each edit maps to one feed entry. In a medium to small city, the observed pattern is: silent for one month, then one user does a lot of modifications across a day or a couple weeks.
  • My local OSM community's forum has an entry every 4-7 days, sometimes 2 entries a day. I would naively do the arithmetic mean and get more than 1 day of fetch interval. But that would be likely seen by the community as too much / bot malfunctioning.

A lot of this comes down to deployment size too. If you're running a bot and have 100 feeds, then you can probably iterate them pretty quickly and never notice. You can also make use of pollConcurrency and pollIntervalSeconds to alleviate speed issues by checking more feeds concurrently, or having shorter intervals.

The element.io public deployment is not a good choice where your system requires realtime updates because it's got something like 5000 odd feeds subscribed, of varying sizes.