nekohayo / specto

Automatically exported from code.google.com/p/specto
0 stars 0 forks source link

queue watches if more than one wants to refresh at once, don't spam the user if the network seems down #129

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Copy-pasting various bits of discussion.

If you have 10 watches set up to all look check every ten minutes, every
ten minutes you'll get a network burst, which might (or not) choke your
bandwidth.
My knowledge of the code is rusty, but let's say that watches all come to
their automatic refresh timeout at 10 mins, they effectively *could*
refresh multiple at once I think; because it's not a "for each loop" like
the "startup refresh". I think I remember seeing multiple watches hung with
the "refresh" icon when the network connection was up but the net was down :)

It would still be important, however, that all the watches check one after
another, even if that means they all return "warnings". We don't want a
watch invalidating the other, because:
- maybe the user has not lost the net, only a few watches are unavailable
- maybe the user *wants* to be notified of certain watches being
unavailable, or the network connection being down.

We could have a special behavior that, while in a "refresh queue", delay
the *warning* notifications until the end. 

Note that this refresh queue would affect only watches that typically need
the network (such as mail and web watches, google reader, etc).

If >70% of watches have returned warnings, then issue a special warning to
the user saying "A lot of watches could not be checked for updates. This is
most likely because you have network connection problems." instead of
showing 20 warning balloons.

The rationale behind that is that if the network connection is broken, most
likely it will be nearly 100% of watches that return errors (hence why I
chose the 70% number, purely arbitrarily though). In that case, only a
"network connection problem" warning will be issued. The user will know
that his network is malfunctioning, and could guess that his email won't
work either.

But in the case where errors <70%, then individual warnings would be issued
for watches. So if only the email watch does not respond, the user will
still know.

In any case, it does seem annoying when your connection goes down and 20
watches pop warning balloons (ie: network-manager reports being connected
to the local network, but is unaware that the Internet cannot be reached).
That is not "unobtrusive".

Currently, we can't implement this feature because there is not a common
agreement on the logic to determine "when enough errors are enough". For
instance, the "70%" and "5" numbers above are totaly arbitrary. Discuss!
Depends on issue #1.

Original issue reported on code.google.com by nekoh...@gmail.com on 26 Mar 2008 at 3:04