README

The LUCI Scheduler Service

The LUCI Scheduler Service periodically makes URL fetches, runs Swarming tasks or DM quests. It uses luci-config to fetch per-project lists of cron jobs. It tries to prevent concurrent execution of job invocations (i.e. an invocation will not start if previous one is still running).

It's built on top of App Engine Task Queues service.

TODO(vadimsh): Explain the design.

Expand ▾ Collapse ▴

Directories

Path Synopsis
Package acl implements ACLs for enforcement in API and UI.
Package acl implements ACLs for enforcement in API and UI.
Package apiservers implements gRPC APIs exposed by Scheduler service.
Package apiservers implements gRPC APIs exposed by Scheduler service.
Package catalog implements a part that talks to luci-config service to fetch and parse job definitions.
Package catalog implements a part that talks to luci-config service to fetch and parse job definitions.
Package engine implements the core logic of the scheduler service.
Package engine implements the core logic of the scheduler service.
dsset
Package dsset implements a particular flavor of datastore-backed set.
Package dsset implements a particular flavor of datastore-backed set.
policy
Package policy contains implementation of triggering policy functions.
Package policy contains implementation of triggering policy functions.
Binary frontend implements GAE web server for luci-scheduler service.
Binary frontend implements GAE web server for luci-scheduler service.
Package internal contains internal structs used by the tasks and the engine.
Package internal contains internal structs used by the tasks and the engine.
Package presentation implements common method to API and UI serving.
Package presentation implements common method to API and UI serving.
Package task defines interface between Scheduler engine and implementations of particular tasks (such as URL fetch tasks, Swarming tasks, DM tasks, etc).
Package task defines interface between Scheduler engine and implementations of particular tasks (such as URL fetch tasks, Swarming tasks, DM tasks, etc).
buildbucket
Package buildbucket implements tasks that run Buildbucket jobs.
Package buildbucket implements tasks that run Buildbucket jobs.
noop
Package noop implements tasks that do nothing at all.
Package noop implements tasks that do nothing at all.
urlfetch
Package urlfetch implements tasks that just make HTTP calls.
Package urlfetch implements tasks that just make HTTP calls.
utils
Package utils contains a bunch of small functions used by task/ subpackages.
Package utils contains a bunch of small functions used by task/ subpackages.
Package ui implements request handlers that serve user facing HTML pages.
Package ui implements request handlers that serve user facing HTML pages.