{% from "macros.html" import badge, icon, job_chip, empty_state with context %} {% if workers %}
{{ workers|length }}live · {{ workers|sum(attribute='concurrency') }} slots · {{ workers|sum(attribute='processed')|compact }} done {% set tfail = workers|sum(attribute='failed') %} {% if tfail %}·{{ tfail|compact }} failed{% endif %}
{% if multi %}{% endif %} {% for w in workers %} {% if multi %}{% endif %} {% endfor %}
WorkerQueueRunning Done Failed Uptime
{% if w.state == 'stopping' %} draining {% else %} live {% endif %} {{ w.host }} pid {{ w.pid }} ×{{ w.concurrency }} {% if w.state == 'stopping' %}draining{% endif %}
{{ w.queue }} {% if w.current %}
{% for jid in w.current %}{{ job_chip(w.queue, jid) }}{% endfor %} {{ w.current|length }}/{{ w.concurrency }}
{% else %}idle{% endif %}
{{ w.processed|compact }} {{ w.failed|compact }} {{ w.started|uptime }}
{% else %} {{ empty_state('server', 'No workers running', 'Start a toro Worker against this Redis and it appears here.', bordered=true) }} {% endif %} {% if departed %}
Recently stopped
{% if multi %}{% endif %} {% for d in departed %} {% if multi %}{% endif %} {% endfor %}
WorkerQueueStatus Done Failed Stopped
{{ d.host }} pid {{ d.pid }}
{{ d.queue }}
{% if d.reason == 'lost' %} lost · no heartbeat {% else %} stopped {% endif %} {% if d.current %} while running {% for jid in d.current %}{{ job_chip(d.queue, jid) }}{% endfor %} {% endif %}
{{ d.processed|compact }} {{ d.failed|compact }} {{ d.at|uptime }} ago
{% endif %}