{% extends "layout.html" %} {% from "shared/components.html" import empty_state, stat_card, status_badge %} {% block content %}

Repeatable Jobs

{{ stat_card("Definitions", repeatables|length, tone="accent") }} {{ stat_card("Active", repeatables|selectattr("paused", "equalto", false)|list|length, tone="success") }} {{ stat_card("Paused", repeatables|selectattr("paused")|list|length, tone="warning") }}

Scheduled Definitions

Pause, resume, or remove backend repeatable definitions

{% for r in repeatables %} {% else %} {% endfor %}
Task Interval Cron Next Run Status Definition Actions
{{ r.task_id or "n/a" }} {{ r.every or "—" }} {{ r.cron or "—" }} {{ r.next_run }} {% if r.paused %} {{ status_badge("paused", "Paused") }} {% else %} {{ status_badge("active", "Active") }} {% endif %}
Redacted definition
{{ r.job_def_display }}
{% if r.paused %} {% else %} {% endif %}
Remove

Remove repeatable definition {{ r.task_id or "n/a" }} from queue {{ queue }}.

{{ empty_state("No repeatable jobs", "Backend repeatable definitions will appear here when configured.") }}
{% endblock %}