Background tasks
================

Operations that are expected to take a long time are run as background tasks.
For this, at least one `Celery`_ worker has to be running, e.g. by coupling it
with uWSGI as laid out in :ref:`core-configure-uwsgi`.

If a task is triggered from the AlekSIS frontend, for example by starting an import
job, a progress page is displayed, and the result of the job is waited for.
When the page is closed while the job has still not finished, an information bar
showing the progress will be visible until it has finished.

.. _core-periodic-tasks:

Periodic tasks
~~~~~~~~~~~~~~

Some tasks are also run on a schedule. For example, the backup job is run on
a regular basis.

All tasks in AlekSIS that are expected to run have a default schedule, which
is registered when migrating the database. Changing this default schedule
is currently only possible through the Django Admin backend, under
*Admin → Backend Admin*.

Under the *Periodic Tasks* app, you can define schedules and tasks. The names
of tasks you can add manually are documented in the respective sections
of the manual.

.. _Celery: https://celeryproject.org/
