{% extends "admin/jobs/base.html" %} {% from "admin/jobs/macros.html" import badge, timestamp, paging with context %} {% block jobs_filters %}
{% if filters.status %}{% endif %} {% if filters.q or filters.queue or filters.worker or filters.status %}Clear{% endif %}
{% endblock %} {% block jobs_content %}
All tasks
{{ all_count }}
Retained history
{% for state, label in states.items() %}{% if state != 'ABANDONED' %}
{{ label[0] }}
{{ counts.get(state, 0) }}
{{ 'Waiting to execute' if state == 'PENDING' else 'Active processes' if state == 'STARTED' else 'Backoff before retry' if state == 'RETRY' else 'Completed' if state == 'SUCCESS' else 'Needs attention' if state == 'FAILURE' else 'Cancelled' }}
{% endif %}{% endfor %}
Task volumeAll queues · Last 24 hours · UTC

Tasks

{{ total }} matching
{% for key, label in [('name','Task / ID'), ('status','State'), ('created','Received'), ('eta','ETA'), ('retries','Retries')] %} {% endfor %} {% for item in tasks %}{% set task = item.task %} {% else %}{% endfor %}
{{ label }}{% if sort.lstrip('-') == key %} {% endif %}RuntimeWorker
{{ task.name }}{{ task.task_id }}{{ task.queue }} {{ badge(task.status, states) }} {{ timestamp(task.date_created) }} {{ timestamp(task.eta) }} {{ task.retries }} / {{ task.max_retries }} {{ item.runtime }} {% if task.worker %}{% if perms.jobs.view_worker %}{{ task.worker }}{% else %}{{ task.worker }}{% endif %}{% else %}Unassigned{% endif %}

No tasks match these filters

New jobs will appear here as they are queued.

{{ paging(page, pages, total, request) }}
{% endblock %}