All Projects → funkyfuture → Deck Chores

funkyfuture / Deck Chores

Licence: isc
A job scheduler for Docker containers, configured via labels.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Deck Chores

Shardingsphere Elasticjob Cloud
Stars: ✭ 248 (+125.45%)
Mutual labels:  scheduler, scheduled-jobs
Frame Scheduling
Asynchronous non-blocking running many tasks in JavaScript. Demo https://codesandbox.io/s/admiring-ride-jdoq0
Stars: ✭ 64 (-41.82%)
Mutual labels:  scheduler, scheduled-jobs
Quartznet
Quartz Enterprise Scheduler .NET
Stars: ✭ 4,825 (+4286.36%)
Mutual labels:  scheduler, scheduled-jobs
Sundial
A Light-weight Job Scheduling Framework
Stars: ✭ 230 (+109.09%)
Mutual labels:  scheduler, scheduled-jobs
Sidekiq Cron
Scheduler / Cron for Sidekiq jobs
Stars: ✭ 1,383 (+1157.27%)
Mutual labels:  scheduler, scheduled-jobs
josk
🏃🤖 Scheduler and manager for jobs and tasks in node.js on multi-server and clusters setup
Stars: ✭ 27 (-75.45%)
Mutual labels:  scheduler, scheduled-jobs
Cronscheduler.aspnetcore
Cron Scheduler for AspNetCore 2.x/3.x or DotNetCore 2.x/3.x Self-hosted
Stars: ✭ 100 (-9.09%)
Mutual labels:  scheduler, scheduled-jobs
Jquery Calendar
A responsive jquery calendar scheduler built with bootstrap and moment.js
Stars: ✭ 67 (-39.09%)
Mutual labels:  scheduler
Gmailscheduler
Google app script system to allow gmail / google business apps users to schedule outgoing messages & to set messages to return to inbox
Stars: ✭ 94 (-14.55%)
Mutual labels:  scheduler
Bottleneck
Job scheduler and rate limiter, supports Clustering
Stars: ✭ 1,113 (+911.82%)
Mutual labels:  scheduler
Rq Scheduler
A lightweight library that adds job scheduling capabilities to RQ (Redis Queue)
Stars: ✭ 1,095 (+895.45%)
Mutual labels:  scheduler
When Command
When is a configurable user task scheduler for Gnome
Stars: ✭ 69 (-37.27%)
Mutual labels:  scheduler
Ddns Route53
Dynamic DNS for Amazon Route 53 on a time-based schedule
Stars: ✭ 98 (-10.91%)
Mutual labels:  scheduler
Spring Boot Quartz Scheduler Email Scheduling
Spring Boot Quartz Scheduler Example that schedules Emails to be sent at a later time.
Stars: ✭ 109 (-0.91%)
Mutual labels:  scheduler
Devextreme
HTML5 JavaScript Component Suite for Responsive Web Development
Stars: ✭ 1,385 (+1159.09%)
Mutual labels:  scheduler
Esp8266scheduler
ESP8266 Co-operative Multitasking
Stars: ✭ 93 (-15.45%)
Mutual labels:  scheduler
Pythonstudy
Python related technologies used in work: crawler, data analysis, timing tasks, RPC, page parsing, decorator, built-in functions, Python objects, multi-threading, multi-process, asynchronous, redis, mongodb, mysql, openstack, etc.
Stars: ✭ 103 (-6.36%)
Mutual labels:  scheduler
Deepsleepscheduler
DeepSleepScheduler is a lightweight, cooperative task scheduler library with configurable sleep and task supervision.
Stars: ✭ 59 (-46.36%)
Mutual labels:  scheduler
Clock
可视化任务调度系统,精简到一个二进制文件 (Web visual task scheduler system , yes ! just one binary solve all the problems !)
Stars: ✭ 86 (-21.82%)
Mutual labels:  scheduler
Sentinl
Kibana Alert & Report App for Elasticsearch
Stars: ✭ 1,233 (+1020.91%)
Mutual labels:  scheduler

deck-chores

.. image:: https://img.shields.io/docker/pulls/funkyfuture/deck-chores.svg :target: https://hub.docker.com/r/funkyfuture/deck-chores/

.. image:: https://images.microbadger.com/badges/image/funkyfuture/deck-chores.svg :target: https://microbadger.com/images/funkyfuture/deck-chores

.. image:: https://img.shields.io/pypi/v/deck-chores.svg :target: https://pypi.org/project/deck-chores/

A job scheduler for Docker containers, configured via container labels.

Features

  • define regular jobs to run within a container context with container and optionally with image labels
  • use date, interval and cron-like triggers
  • set a maximum of simultaneously running instances per job
  • restrict job scheduling to one container per service
  • multi-architecture image supports amd64, arm64 and armv7l platforms, no emulator involved

Example

Let's say you want to dump the database of a Wordpress once a day. Here's a docker-compose.yml that defines a job that will be handled by deck-chores:

.. code-block:: yaml

version: "3.7"

services:
  wordpress:
    image: wordpress
  mysql:
    image: mariadb
    volumes:
      - ./database_dumps:/dumps
    labels:
      deck-chores.dump.command: sh -c "mysqldump --all-databases > /dumps/dump-$$(date -Idate)"
      deck-chores.dump.interval: daily

It is however recommended to use scripts with a proper shebang for such actions. Their outputs to stdout and stderr as well as their exit code will be logged by deck-chores.

Maintenance

The final release is supposed to receive monthly updates that includes updates of all updateable dependencies. If one is skipped, don't worry. When a second maintenance release is skipped, feel free to open an issue to ask what the status is.

You can always build images upon an up-to-date base image with::

make build

Limitations

When running on a cluster of Docker Swarm <https://docs.docker.com/engine/swarm/>_ nodes, each deck-chores instance can only observe the containers on the node it's running on, and hence only restrict to run one job per service within the node's context.

Acknowledgements

It wouldn't be as charming to write this piece of software without these projects:

  • APScheduler <https://apscheduler.readthedocs.io>_ for managing jobs
  • cerberus <http://python-cerberus.org>_ for processing metadata
  • docker-py <https://docker-py.readthedocs.io>_ for Docker interaction
  • flake8 <http://flake8.pycqa.org/>, mypy <http://mypy-lang.org>, pytest <http://pytest.org>_ and tox <https://tox.readthedocs.io>_ for testing
  • Python <https://www.python.org>_

Authors

  • Frank Sachsenheim (maintaining)
  • aeri4list
  • alpine-digger
  • Brynjar Smári Bjarnason
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].