chronos - Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules

  •        462

Chronos is a replacement for cron. It is a distributed and fault-tolerant scheduler that runs on top of Apache Mesos that can be used for job orchestration. It supports custom Mesos executors as well as the default command executor. Thus by default, Chronos executes sh (on most systems bash) scripts. Chronos can be used to interact with systems such as Hadoop (incl. EMR), even if the Mesos agents on which execution happens do not have Hadoop installed. Included wrapper scripts allow transfering files and executing them on a remote machine in the background and using asynchronous callbacks to notify Chronos of job completion or failures. Chronos is also natively able to schedule jobs that run inside Docker containers.

http://mesos.github.io/chronos/
https://github.com/mesos/chronos


Dependencies:

org.scala-lang:scala-library:2.11.8
mesosphere:chaos_2.11:0.8.7
mesosphere:mesos-utils_2.11:1.0.1
com.google.guava:guava:16.0.1
joda-time:joda-time:2.9.6
org.joda:joda-convert:1.8
org.jgrapht:jgrapht-core:1.0.0
org.jgrapht:jgrapht-ext:1.0.0
org.apache.curator:curator-framework:2.11.0
org.apache.curator:curator-recipes:2.11.0
io.dropwizard.metrics:metrics-graphite:3.1.0
com.datastax.cassandra:cassandra-driver-core:3.1.2
net.jpountz.lz4:lz4:1.3.0
com.typesafe.akka:akka-actor_2.11:2.3.16
com.getsentry.raven:raven:7.8.0
org.apache.commons:commons-email:1.3.3
org.apache.commons:commons-math3:3.2
commons-codec:commons-codec:1.10
org.apache.commons:commons-lang3:3.5

Tags
Implementation
License
Platform

   




Related Projects

cronsun - A Distributed, Fault-Tolerant Cron-Style Job System.

  •    Go

cronsun is a distributed cron-style job system. It's similar with crontab on stand-alone *nix. The goal of this project is to make it much easier to manage jobs on lots of machines and provides high availability. cronsun is different from Azkaban, Chronos, Airflow.

vagrant-mesos - Spin up your Mesos Cluster with Vagrant! (VirtualBox and AWS)

  •    Ruby

This spins up Mesos 0.22.1 cluster and also spins up a framework server node in which Marathon (0.8.2) and Chronos (2.1.0) are running. This means you can build your own Mesos+Marathon+Chronos+Docker PaaS with vagrant up!! Marathon works as distributed init.d and Chronos works as distributed cron!! If you wanted to deploy docker containers, please refer to the chapter "Deploy Docker Container with Marathon" in this blog entry. The mesos installation is powered by Mesos chef cookbook. Please see everpeace/cookbook-mesos.

dkron - Dkron - Distributed, fault tolerant job scheduling system http://dkron.io

  •    Go

Dkron is written in Go and leverage the power of distributed key-value stores and serf for providing fault tolerance, reliability and scalability while keeping simple and easily instalable. Dkron is inspired by the google whitepaper Reliable Cron across the Planet and by Airbnb Chronos borrowing the same features from it.

Singularity - Scheduler (HTTP API and webapp) for running Mesos tasks—long running processes, one-off tasks, and scheduled jobs

  •    Java

Singularity is an API and web application for running and scheduling Apache Mesos tasks — including long running processes, scheduled jobs, and one-off tasks.It focuses on a batteries-included approach: Singularity and its components provide an entire Platform as a Service (PaaS) to end-users. It has many features which have been introduced to reduce developer friction and ensure proper operation and reliable deployment of tasks. Users may even be unfamiliar with and shielded from the details of Mesos.

Quartz - A full-featured, Java-based, In-process job scheduler

  •    Java

Quartz is a full-featured, open source job scheduling service that can be integrated with, or used along side virtually any Java EE or Java SE application - from the smallest stand-alone application to the largest e-commerce system.


sidekiq-cron - Scheduler / Cron for Sidekiq jobs

  •    Ruby

A scheduling add-on for Sidekiq. Runs a thread alongside Sidekiq workers to schedule jobs at specified times (using cron notation * * * * * parsed by Rufus-Scheduler, more about cron notation.

saturn Network Job Scheduler

  •    Perl

Saturn (AKA Chronos by the greeks) was the god of time, parent of Jupiter (Zeus). Now it is also a network job scheduler. Set your scheduling jobs once, centralized, and it will be scheduled on each machine of your network.

crono - A time-based background job scheduler daemon (just like Cron) for Rails

  •    Ruby

Crono is a time-based background job scheduler daemon (just like Cron) for Ruby on Rails. Currently, there is no such thing as Ruby Cron for Rails. Well, there's Whenever but it works on top of Unix Cron, so you can't manage it from Ruby. Crono is pure Ruby. It doesn't use Unix Cron and other platform-dependent things. So you can use it on all platforms supported by Ruby. It persists job states to your database using Active Record. You have full control of jobs performing process. It's Ruby, so you can understand and modify it to fit your needs.

sidekiq-scheduler - Lightweight job scheduler extension for Sidekiq

  •    Ruby

sidekiq-scheduler is an extension to Sidekiq that pushes jobs in a scheduled way, mimicking cron utility. Note: If you are looking for version 2.2.*, go to 2.2-stable branch.

swan - A Distributed, Highly Available Mesos Scheduler, Inspired by the design of Google Borg

  •    Go

Swan is a Mesos framework forcus on long running tasks, which inspired by Marathon, written with Golang and base on latest Mesos HTTP API.With Swan you can deploy long running application on mesos cluster, control lifecycle of the application, scale up or scale down any instances size you want, can also do rolling-update with new versions base on flexible health checks defined by you. Swan also designed for high avaliability which means any server crash wouldn't affect running applications. with service discovery and API gateway build-in, service discovery made easy.

kala - Modern Job Scheduler

  •    Go

Kala is a simplistic, modern, and performant job scheduler written in Go. It lives in a single binary and does not have any dependencies.Kala was inspired by the desire for a simpler Chronos (developed by Airbnb). Kala is Chronos for the rest of us.

chronos - Fault tolerant job scheduler that handles dependencies and iso8601 based schedules.

  •    Javascript

Fault tolerant job scheduler that handles dependencies and iso8601 based schedules.

quantum-core - :watch: Cron-like job scheduler for Elixir

  •    Elixir

Cron-like job scheduler for Elixir. This README follows master, which may not be the currently published version. Here are the docs for the latest published version of Quantum.

TaskForrest

  •    Perl

Taskforest is a simple but expressive open-source job scheduler that allows you to chain jobs/tasks and create time dependencies. It uses text config files to specify task dependencies. It has built-in RESTful web service.

Cook - Fair job scheduler on Mesos for batch workloads and Spark

  •    Clojure

Core concepts is a good place to start to learn more. Check the changelog for release info.

pg_cron - Run periodic jobs in PostgreSQL

  •    C

pg_cron can run multiple jobs in parallel, but it runs at most one instance of a job at a time. If a second run is supposed to start before the first one finishes, then the second run is queued and started as soon as the first run completes. An easy way to create a cron schedule is: crontab.guru.

android-job - Android library to handle jobs in the background.

  •    Java

A utility library for Android to run jobs delayed in the background. Depending on the Android version either the JobScheduler, GcmNetworkManager or AlarmManager is getting used. You can find out in this blog post or in these slides why you should prefer this library than each separate API. All features from Android Oreo are backward compatible back to Ice Cream Sandwich. Starting with version 1.3.0 the library will use the WorkManager internally, please read the documentation and opt-in.

Fenzo - Extensible Scheduler for Mesos Frameworks

  •    Java

Fenzo is a scheduler Java library for Apache Mesos frameworks that supports plugins for scheduling optimizations and facilitates cluster autoscaling.Apache Mesos frameworks match and assign resources to pending tasks. Fenzo presents a plugin-based, Java library that facilitates scheduling resources to tasks by using a variety of possible scheduling objectives, such as bin packing, balancing across resource abstractions (such as AWS availability zones or data center racks), resource affinity, and task locality.

rufus-scheduler - scheduler for Ruby (at, in, cron and every jobs)

  •    Ruby

scheduler for Ruby (at, in, cron and every jobs)