Skip to content

Cron jobs

Grove allows you to define cron jobs to run in par with your instance by defining an array of objects containing the job schedule, the target service and script to execute.

Use cases

There are many reasons you may want this behaviour, for example running manage.py commands periodically, like aggregator cleanups. Take the following config example:

.. code-block:: yaml

# instance/config.yml
GROVE_CRON_JOBS:
    - name: run_aggregator_service
      schedule: '*/10 * * * *'
      script: ./manage.py lms run_aggregator_service
    - name: hello_world
      schedule: '*/20 * * * *'
      script: echo Hello world
      service: "cms"

service indicates which service this cron job would target. Supported values include "lms", "cms", "ecommerce", "discovery". If service is not configured, the default value is "lms".

Note

The cron jobs are running in separate pods. Therefore it is not sharing volumes with LMS/Studio or other pods. If you want to run jobs that must access data stored in LMS/Studio volumes, these cron jobs won't be sufficient for your needs. Grove is not prepared for this scenario (yet).