mantra - A simple cron-like scheduler for a single command

  •        33

Running a process in a Docker container on a fixed schedule is fiddly. Most solutions seem to involve installing cron, then installing a crontab and tailing cron's output. Yuck. mantra is more like at, in that it allows you to specify the schedule as an argument in a cron format, along with the executable name and any arguments. It will then run that command, and only that command, on the schedule provided. STDOUT and STDERR are shared, making it easier to capture the program output.

https://github.com/pugnascotia/mantra

Tags
Implementation
License
Platform

   




Related Projects

node-cron - Cron for NodeJS.

  •    Javascript

Cron is a tool that allows you to execute something on a schedule. This is typically done using the cron syntax. We allow you to execute a function whenever your scheduled job triggers. We also allow you to execute a job external to the javascript process using child_process. Additionally, this library goes beyond the basic cron syntax and allows you to supply a Date object. This will be used as the trigger for your callback. Cron syntax is still an acceptable CronTime format. Although the Cron patterns supported here extend on the standard Unix format to support seconds digits, leaving it off will default to 0 and match the Unix behavior. Because we can't magically know what you are doing to expose an issue, it is best if you provide a snippet of code. This snippet need not include your secret sauce, but it must replicate the issue you are describing. The issues that get closed without resolution tend to be the ones without code examples. Thanks.

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

  •    Scala

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.

jobber - An alternative to cron, with sophisticated status-reporting and error-handling

  •    Go

A replacement for cron, with sophisticated status-reporting and error-handling. Jobber is a lightweight utility for Unix-like systems that can run arbitrary commands, or "jobs", according to a schedule. It is meant to be a replacement for the classic Unix utility cron.

later - A javascript library for defining recurring schedules and calculating future (or past) occurrences for them

  •    HTML

Later is a library for describing recurring schedules and calculating their future occurrences. It supports a very flexible schedule definition including support for composite schedules and schedule exceptions. Create new schedules manually, via Cron expression, via text expressions, or using a fully chainable API. For more information on SemVer, please visit http://semver.org/.

ofelia - A docker job scheduler (aka. crontab for docker)

  •    Go

Ofelia is a modern and low footprint job scheduler for docker environments, built on Go. Ofelia aims to be a replacement for the old fashioned cron. It has been a long time since cron was released, actually more than 28 years. The world has changed a lot and especially since the Docker revolution. Vixie's cron works great but it's not extensible and it's hard to debug when something goes wrong.


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-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.

django-cron - Write cron business logic as a Python class and let this app do the rest! It enables Django projects to schedule cron tasks, tracks their success / failures, manages contention (via a cache) etc

  •    Python

Django-cron lets you run Django/Python code on a recurring basis providing basic plumbing to track and execute tasks. The 2 most common ways in which most people go about this is either writing custom python scripts or a management command per cron (leads to too many management commands!). Along with that some mechanism to track success, failure etc. is also usually necesary. This app solves both issues to a reasonable extent. This is by no means a replacement for queues like Celery ( http://celeryproject.org/ ) etc.

docker-alpine - Alpine Linux Docker image. Win at minimalism!

  •    Shell

A super small Docker image based on Alpine Linux. The image is only 5 MB and has access to a package repository that is much more complete than other BusyBox based images.This makes Alpine Linux a great image base for utilities and even production applications. Read more about Alpine Linux here and you can see how their mantra fits in right at home with Docker images.

minicron - 👨🏻‍💻 Monitor your cron jobs

  •    Ruby

minicron makes it simple to monitor your cron jobs and ensure they are running both correctly and on schedule. Latest stable release in 0.9.7 tag but 0.9.x is not being actively developed/supported. This branch is under active development for 1.0.0.

mantra - Mantra - An Application Architecture for Meteor

  •    Shell

Mantra is an application architecture for Meteor. With Mantra, we try to achieve two main goals. Maintainability is a key factor for success when working with a large team. We achieve this by unit testing every part of our app, while following standards for everything. Then it's easy to on-board new users and work with teams.

nodock - Docker Compose for Node projects with Node, MySQL, Redis, MongoDB, NGINX, Apache2, Memcached, Certbot and RabbitMQ images

  •    Shell

The docker Node.js image is very simple, you give it an entrypoint and it runs it. This is fine for very simple/small scripts but for larger projects you'll probably want something a bit more robust. The goal of NoDock is to provide a complete environment for your node project: Node.js service(s), databases, web servers, queues, etc. while doing the "wiring" for you.

Swarm - Docker native clustering system

  •    Go

Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual host. It is Docker's first container orchestration project that began in 2014. Combined with Docker Compose, it's a very convenient tool to schedule containers.

ndscheduler - A flexible python library for building your own cron-like system, with REST APIs and a Web UI

  •    Python

ndscheduler is a flexible python library for building your own cron-like system to schedule jobs, which is to run a tornado process to serve REST APIs and a web ui. It's like LLVM that provides modular and reusable components for building a compiler. ndscheduler currently supports Python 2 & 3 on Mac OS X / Linux.

Rundeck - Job Scheduler and Runbook Automation

  •    Groovy

Rundeck is an open source automation service with a web console, command line tools and a WebAPI. It lets you easily run automation tasks across a set of nodes. It can schedule a job, more secure replacement of cron. It provides support for runbook automation where it can execute common set of reusable procedures.

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.

mgob - MongoDB dockerized backup agent. Runs schedule backups with retention, S3 & SFTP upload, notifications, instrumentation with Prometheus and more.

  •    Go

MGOB is a MongoDB backup automation tool built with golang. Its features include Schedule backups, Local backups retention, Upload to S3, Google Cloud and lot more. It is distributed as an Alpine Docker image.

Bistro - Flexible distributed scheduler, a high-performance framework supporting multiple paradigms while retaining ease of configuration, management, and monitoring

  •    C++

Bistro is a toolkit for making services that schedule and execute tasks. Bistro is a toolkit for making distributed computation systems. It can schedule and run distributed tasks, including data-parallel jobs. It enforces resource constraints for worker hosts and data-access bottlenecks. It supports remote worker pools, low-latency batch scheduling, dynamic shards, and a variety of other possibilities. It has command-line and web UIs.

jobrunner - Framework for performing work asynchronously, outside of the request flow

  •    Go

JobRunner is framework for performing work asynchronously, outside of the request flow. It comes with cron to schedule and queue job functions for processing at specified time.It includes a live monitoring of current schedule and state of active jobs that can be outputed as JSON or Html template.

docker-nginx-php - An Ubuntu, Nginx and PHP stack Built in Docker

  •    Shell

This is the basis for LEMP stack (minus MySQL). This is based on phusion/baseimage-docker base Ubuntu image, which takes care of system issues which Docker's base Ubuntu image does not take care of, such as watching processes, logrotate, ssh server, cron and syslog-ng. You can build this yourself after cloning the project (assuming you have Docker installed).