- From: Kenneth Rohde Christiansen <kenneth.christiansen@gmail.com>
- Date: Mon, 18 Nov 2013 11:07:10 +0100
- To: John Mellor <johnme@google.com>
- Cc: "public-sysapps@w3.org" <public-sysapps@w3.org>
- Message-ID: <CAEC208tcyk4_CUPGzz-aYVASC9MmEEH20_PmvdxfSyd65w924w@mail.gmail.com>
I am OK with recurring alarms, but what is supposed to happen if the device is off and an alarm cannot be met? Kenneth On Wed, Nov 13, 2013 at 1:38 PM, John Mellor <johnme@google.com> wrote: > I notice that the API only allows one-shot alarms (setTimeout style), so > apps that want to run periodically (both at exact times like a recurring > alarm/calendar event, and inexact times like background syncing) must > schedule a new task every time their task gets started. > > That helps to keep the API nice and simple, but I worry that it might > cause sporadic failures. Specifically, if the app crashes, gets killed, or > hits an exception, in between the task starting and the app scheduling its > next execution, it will never be run again (until the app is next manually > launched, at which point a well-written app might check that the task is > still scheduled, though many apps may neglect to do this). > > Two possible solutions: > > 1. Automatically schedule an additional task if a task crashes or gets > killed. However, there's a risk that this would perform actions twice (e.g. > if the background task sends an email, and we run an additional task with > the same data, 2 emails might get sent); alternatively we could pass null > data, but then that might confuse an app that only every schedules itself > with data. So I'm not really sure this is workable. > > 2. Add a recurring alarm variant. It might make sense to only allow inexact > alarms<http://lists.w3.org/Archives/Public/public-sysapps/2013Nov/0019.html> to > automatically recur; this would also allow us to simplify the API, as with > inexact alarms you don't actually need to specify an interval, instead the > browser will heuristically determine how often you deserve to get run (or > we could allow providing a "minimum interval", which is the period of time > after a given task execution during which the task should *not* be run, and > after that the browser can schedule the task whenever). > > What do people think? > Thanks, > John > -- Kenneth Rohde Christiansen Web Platform Architect, Intel Corporation. Phone +45 4294 9458 ﹆﹆﹆
Received on Monday, 18 November 2013 10:07:37 UTC