Asparagus is an open source task scheduler with no external dependencies. It's useful for executing scheduled tasks on any environment.
- 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.
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
------------------- ----------------------
| 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 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 define where cronjobs can be discovered. To find out more read this article.
Execution providers execute whatever was defined inside a cronjob. To find out more read this article.
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.