Provides a job execution framework with Bootique integration. The framework includes a basic runnable job definition with metadata and parameters, a job scheduler. It contains Bootique commands to list jobs, run individual jobs, and schedule periodic job execution. Also includes a Zookeeper-based cluster locking facility for jobs that should not be allowed to run concurrently.
See usage examples here.
--list
List all configured jobs and their parameters and default parameter values.
--exec --job=name [--job=name [...]] [--serial]
Executes one or more jobs, possibly in parallel. The options have the following meaning:
- --job=name: name is either a job name or a job "group" name. Can optionally contain a JSON map
of job parameters. E.g.
myjob{"p":1}
. Multiple--job
arguments can be specified in order to run several jobs with a single command. - --serial: enforces sequential execution of jobs, in the same order that they are specified in the program arguments.
- Does not have any effect, if only one
--job
argument has been specified.
This command implements a fail-fast behavior, when run in serial mode. If there is more than one --job
argument,
and one of the jobs fails, the command terminates immediately, and the subsequent jobs are not executed.
The command exits with 0
, only if all the jobs completed normally. Otherwise, returns a non-zero exit code.
--schedule
Schedules and executes jobs according to configuration. Waits indefinitely on the foreground.