Name: metronome
Owner: DC/OS
Description: Apache Mesos framework for scheduled jobs
Created: 2016-05-10 09:55:12.0
Updated: 2018-01-10 11:34:16.0
Pushed: 2018-01-18 23:33:47.0
Homepage: https://dcos.github.io/metronome/
Size: 724
Language: Scala
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Metronome is an Apache Mesos framework for scheduled jobs.
Metronome documentation is available on the Metronome Project Site or DC/OS documentation site.
Metronome issues are tracked as JIRA tickets in Mesosphere's on-premise JIRA instance that anyone is able to view and add to using GitHub SSO.
Get familiar with Metronome with this step-by-step Getting Started guide.
Consult the full Metronome REST API reference.
An unofficial Go client library, metronome-client has been created for the v1 API.
We heartily welcome external contributions to Metronome's codebase and documentation. Please see our Contributor Guidelines.
To build Metronome from source, check out this repo and use sbt to build a universal package:
git clone https://github.com/dcos/metronome.git
cd metronome
sbt universal:packageBin
In order to build from source you will need protobuf version 2.6.1. This can be installed by executing the ./bin/install-protobuf.sh
. This will install protobuf to $HOME/protobuf
. You will need $HOME/protobuf/bin
in your path ( export PATH=~/protobuf/bin:$PATH
).
Mesos local mode allows you to run Metronome without launching a full Mesos cluster. It is meant for experimentation and not recommended for production use. Note that you still need to run ZooKeeper for storing state. The following command launches Metronome on Mesos in local mode.
sbt run
"id": "sample-job",
"description": "A sample job that sleeps",
"run": {
"cmd": "sleep 1000",
"cpus": 0.01,
"mem": 32,
"disk": 0,
"placement": {
"constraints": [
{
"attribute": "hostname",
"operator": "LIKE",
"value": "<host-name>"
}
]
}
},
"schedules": [
{
"id": "sample-schedule",
"enabled": true,
"cron": "0 0 * * *",
"concurrencyPolicy": "ALLOW"
}
]
This job will sleep every day at midnight and will land on the host defined by <host-name>
which could be the hostname or IP of a node in the cluster. If you don't care where it lands in the cluster remove the placement
element.
Have you found an issue? Feel free to report it using our Issues page. In order to speed up response times, please provide as much information on how to reproduce the problem as possible.