How to use cron to run scheduled tasks
Learn how to use cron to run and automate scheduled tasks on Aptible
Cron jobs can be used to run, and automate scheduled tasks. On Aptible, users can run cron jobs with the use of an individual app or with a service associated with an app, defined in the app's procfile.
Supercronic is an open-source tool created by Aptible that avoids common issues with cron job implementation in containerized platforms.
This guide is designed to walk you through getting started with cron jobs on Aptible with the use of Supercronic.
Step 1: Install Supercronic in your Docker image.
Step 2: Add a
crontab to your repository. Here is an example
crontab you might want to adapt or reuse:
# Run every minute */1 * * * * bundle exec rake some:task # Run once every hour @hourly curl -sf example.com >/dev/null && echo 'got example.com!'
📘 For a complete crontab reference, review the documentation from the library Supercronic uses to parse crontabs, cronexpr.
📘 Unless you've specified otherwise with the
TZenvironment variable, the schedule for your crontab will be interpreted in UTC.
Step 3: Copy the
crontab to your Docker image with a directive such as this one:
ADD crontab /app/crontab
📘 The example above grabs a file named
crontabfound at the root of your repository and copies it under
/appin your image. Adjust as needed.
Step 4: Add a new service (if your app already has a Procfile), or deploy a new app altogether to start Supercronic and run your cron jobs. If you are adding a service, use this
cron: exec supercronic /app/crontab
If you are adding a new app, you can use the same
Procfile declaration or add a
CMD declaration to your Dockerfile:
CMD ["supercronic", "/app/crontab"]