All Projects → nirnanaaa → asparagus

nirnanaaa / asparagus

Licence: MIT License
An easy to use task scheduler for distributed systems

Programming Languages

go
31211 projects - #10 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to asparagus

Go Quartz
Simple, zero-dependency scheduling library for Go
Stars: ✭ 118 (+742.86%)
Mutual labels:  cron, crontab, scheduler
Automation-using-Shell-Scripts
Development Automation using Shell Scripting.
Stars: ✭ 41 (+192.86%)
Mutual labels:  cron, crontab, scheduler
croner
Trigger functions and/or evaluate cron expressions in JavaScript. No dependencies. Most features. All environments.
Stars: ✭ 169 (+1107.14%)
Mutual labels:  cron, crontab, scheduler
Gocron
定时任务管理系统
Stars: ✭ 4,198 (+29885.71%)
Mutual labels:  cron, crontab, scheduler
Deno cron
A cron Job scheduler for Deno that allows you to write human readable cron syntax with tons of flexibility
Stars: ✭ 35 (+150%)
Mutual labels:  cron, crontab, scheduler
Bree
🚥 The best job scheduler for Node.js and JavaScript with cron, dates, ms, later, and human-friendly support. Works in Node v10+ and browsers, uses workers to spawn sandboxed processes, and supports async/await, retries, throttling, concurrency, and graceful shutdown. Simple, fast, and lightweight. Made for @ForwardEmail and @ladjs.
Stars: ✭ 933 (+6564.29%)
Mutual labels:  cron, crontab, scheduler
php-cron-expr
Ultra lightweight, Dependency free and Super Fast Cron Expression parser for PHP
Stars: ✭ 42 (+200%)
Mutual labels:  cron, crontab, scheduler
Cronicle
A simple, distributed task scheduler and runner with a web based UI.
Stars: ✭ 979 (+6892.86%)
Mutual labels:  cron, crontab, scheduler
Quantum Core
⌚ Cron-like job scheduler for Elixir
Stars: ✭ 1,905 (+13507.14%)
Mutual labels:  cron, crontab, scheduler
hubot-schedule
A hubot script to schedule a message in both cron-style and datetime-based format pattern
Stars: ✭ 46 (+228.57%)
Mutual labels:  cron, scheduler
time.clj
time util for Clojure(Script)
Stars: ✭ 45 (+221.43%)
Mutual labels:  cron, scheduler
transferwisely
Batch process using transfer-wise API to automatically track, detect and book transfers for you at better rates.
Stars: ✭ 20 (+42.86%)
Mutual labels:  cron, scheduler
delay-timer
Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible scheduling, and dynamic add/cancel/remove is supported.
Stars: ✭ 257 (+1735.71%)
Mutual labels:  cron, crontab
node-cron-expression
Declarative functional cron expression builder
Stars: ✭ 17 (+21.43%)
Mutual labels:  cron, crontab
TT Jobs
基于 Swoole 定时管理系统
Stars: ✭ 22 (+57.14%)
Mutual labels:  crontab, scheduler
rhythm
Time-based job scheduler for Apache Mesos
Stars: ✭ 30 (+114.29%)
Mutual labels:  cron, scheduler
thain
Thain is a distributed flow schedule platform.
Stars: ✭ 81 (+478.57%)
Mutual labels:  cron, scheduler
watchman
📆 更夫(watchman)是一款可视化的定时任务配置 Web 工具,麻麻不用担心我漏掉任何更新啦!
Stars: ✭ 40 (+185.71%)
Mutual labels:  cron, crontab
nodejs-cron-job-must-know
it is an example of running node.js script with every certain period(cron job)
Stars: ✭ 35 (+150%)
Mutual labels:  cron, scheduler
croncal
Utility to convert a crontab file to a list of actual events within a date range.
Stars: ✭ 37 (+164.29%)
Mutual labels:  cron, crontab

Asparagus

CircleCI Maintainability Test Coverage

A simple and pluggable cron scheduler for distributed systems.

Asparagus is an open source task scheduler with no external dependencies. It's useful for executing scheduled tasks on any environment.

Features

  • Variety of Source Providers, ranging from standard crontab to etcd based backends.
  • Multiple Execution Providers, including HTTP and local execution.
  • Simple to install and manage, and easy to get started.
  • Monitoring and reporting is a key priority.
  • Retry and Backoff strategies.

Installation

We recommend using Asparagus with our pre-built Docker image. Start Asparagus using:

# Crontab Backend
docker pull fkconsultin/asparagus

docker run \
  --rm -ti \
  -v $(pwd)/example:/app \
  -e ASPARAGUS_SCHEDULER_PROVIDER_CRONTAB_SOURCE=/app/crontab \
  fkconsultin/asparagus

How it works

  -------------------                                         ----------------------
  | Source Provider | \                                     / | Execution Provider |
  -------------------  \                                   /  ----------------------
                        > - - - Asparagus Scheduler - - - <
  -------------------  /                |                  \  ----------------------
  | Source Provider | /                 |                   \ | Execution Provider |
  -------------------                   |                     ----------------------
                                ---------------------
                                | Metrics Reporting |
                                ---------------------

Source Providers provide configuration and crontab settings to asparagus. Asparagus uses the configured Execution Provider to execute the actual cronjob on the target system.

Configuration

Global configuration

Configuration is done using environment variables or a central config file. You can generate a sample configuration file by using the following command:

docker run --rm -ti fkconsultin/asparagus config > conf/asparagus.conf

Now you can start your asparagus instance using the provided volume: /etc/asparagus using the asparagus.conf filename:

docker run --rm -ti -v $(pwd)/conf:/etc/asparagus fkconsultin/asparagus

Alternatively you can use prefixed environment variables for each configuration variable, like so:

ASPARAGUS_<SECTION>_<KEY>=<VALUE>

Read the annotated documentation if you want to find out more: here

Source Providers

Source providers define where cronjobs can be discovered. To find out more read this article.

Execution Providers

Execution providers execute whatever was defined inside a cronjob. To find out more read this article.

Contributing

If you're feeling adventurous and want to contribute to Aspragus, see our contributing doc for info on how to make feature requests, build from source, and run tests.

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