> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dreizack-medien.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Cronjobs

> Verwalte automatisierte Cronjobs und Wartungstasks in deinem JTL-Shop

## Was sind Cronjobs?

Cronjobs sind automatisierte Aufgaben, die in regelmäßigen Abständen ausgeführt werden. Im JTL-Shop werden sie über eine Job-Queue verwaltet und sind essenziell für Routineaufgaben wie Bestandsaktualisierungen, Datenbereinigung und andere Hintergrundprozesse. Mit Resources & Health hast du volle Kontrolle über diese Prozesse.

Die Cronjob-Verwaltung ist im Resources & Health Plugin integriert und startet automatisch nach der Installation. Es gibt keine zusätzliche Einrichtung erforderlich – das Plugin verwaltet alle Cronjobs zentral.

Achte nur darauf, dass:

* Das Plugin korrekt installiert ist
* Dein Hoster regelmäßige Cron-Aufrufe erlaubt
* Die Job-Queue regelmäßig abgerufen wird

## Status-Übersicht

<div className="border border-[#DFE1E1] rounded-2xl overflow-hidden dark:border-transparent">
  <Frame>
    <img src="https://mintcdn.com/dzm/uX1AdUljPbXXvsx0/images/cro1.jpg?fit=max&auto=format&n=uX1AdUljPbXXvsx0&q=85&s=f16dc2b68a7a4383ccf054c78342f039" alt="Cronjob Status" width="2254" height="268" data-path="images/cro1.jpg" />
  </Frame>
</div>

### Cronjob-Status und Zombies

Die Status-Übersicht zeigt den aktuellen Status aller Cronjobs. Besonders wichtig ist das Verständnis von sogenannten **Zombies** – das sind Cronjobs, die einmal gestartet wurden, aber nie richtig beendet wurden. Sie bleiben mit dem Status `running` stecken, obwohl sie nicht mehr aktiv sind.

**Zombie-Erkennung:**
Zombies entstehen normalerweise durch:

* Timeouts bei langen Operationen
* Serverabstürze während Job-Ausführung
* Lockfile-Probleme
* Speichererschöpfung

**Zombie beheben:**
Nutze den "Status reset (soft)" Button, um den Job wieder in den Normalzustand zu versetzen. Die bestehenden Daten bleiben erhalten.

## Konfiguration

<div className="border border-[#DFE1E1] rounded-2xl overflow-hidden dark:border-transparent">
  <Frame>
    <img src="https://mintcdn.com/dzm/uX1AdUljPbXXvsx0/images/cro2.jpg?fit=max&auto=format&n=uX1AdUljPbXXvsx0&q=85&s=801995200c0b82e6989a27ea29814d1a" alt="Cronjob Konfiguration" width="2250" height="574" data-path="images/cro2.jpg" />
  </Frame>
</div>

### Cronjob-Felder und Einstellungen

Die Tabelle zeigt alle verfügbaren Cronjobs mit ihren aktuellen Informationen:

| Spalte                 | Erklärung                                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------- |
| **Jobtitel**           | Name/Bezeichnung des Cronjobs                                                                           |
| **Frequenz**           | Zeitintervall, in dem der Job automatisch ausgeführt wird (z.B. stündlich, täglich, wöchentlich)        |
| **Status**             | Aktueller Status: queued (wartet), idle (inaktiv), running (läuft), completed (fertig), failed (Fehler) |
| **Letzte Ausführung**  | Zeitstempel der letzten erfolgreichen Ausführung                                                        |
| **Nächste Ausführung** | Zeitstempel, wann der Job das nächste Mal ausgeführt wird                                               |
| **Trigger**            | Art der Auslösung (automatisch, manuell, ASAP)                                                          |
| **Timeout**            | Maximale Zeit, die der Job laufen darf, bevor er abgebrochen wird                                       |
| **Aktionen**           | Verfügbare Steuerbefehle (ausführen, zurücksetzen, löschen)                                             |

### Aktionen

Für jede Cronjob-Aufgabe stehen dir verschiedene Aktionen in der Aktionsleiste zur Verfügung:

<AccordionGroup>
  <Accordion title="Jetzt direkt ausführen">
    Umgeht die JTL-Queue und den Job-Shuffle und führt den Job sofort aus. Der Listener startet automatisch für Live-Logs. Nutze das, wenn du einen Job sofort ausgeführt haben möchtest, ohne auf den nächsten regulären Durchlauf zu warten.
  </Accordion>

  <Accordion title="Auf ASAP setzen">
    Setzt `nextStart=NOW()`. Der Job läuft beim nächsten regulären Queue-Durchlauf mit. Nicht so aggressiv wie "direkt ausführen", aber schneller als der reguläre Rhythmus. Ideal für zeitkritische Jobs.
  </Accordion>

  <Accordion title="Status reset (soft)">
    Setzt `isRunning=0` in der `tjobqueue` Tabelle. Der Job macht bei `tasksExecuted` weiter. Der Fortschritt bleibt erhalten. Nutze das, wenn ein Job hängen bleibt, aber du ihn nicht komplett neu starten möchtest.
  </Accordion>

  <Accordion title="Queue zurücksetzen (hart)">
    Löscht alle `tjobqueue`-Einträge komplett. Der Cron-Job bleibt in der `tcron` Tabelle und startet beim nächsten Lauf von vorne. Setzt den Job auf den Anfang zurück. Nutze das bei hartnäckigen Problemen.
  </Accordion>

  <Accordion title="Cron-Job KOMPLETT löschen">
    Entfernt den Job aus `tcron` **und** `tjobqueue`. **Irreversibel!** Plugin-eigene Jobs werden beim nächsten Plugin-Boot wieder angelegt. Vorsicht – nutze das nur, wenn du den Job wirklich nicht mehr brauchst!
  </Accordion>
</AccordionGroup>

## Live-Logs

<div className="border border-[#DFE1E1] rounded-2xl overflow-hidden dark:border-transparent">
  <Frame>
    <img src="https://mintcdn.com/dzm/uX1AdUljPbXXvsx0/images/cro3.jpg?fit=max&auto=format&n=uX1AdUljPbXXvsx0&q=85&s=46f4670086f85115594f35a2c89421cd" alt="Live-Logs Ansicht" width="2232" height="366" data-path="images/cro3.jpg" />
  </Frame>
</div>

Wenn du einen Cronjob startest, erscheinen die Live-Logs automatisch und geben dir einen detaillierten Einblick in die Ausführung des Jobs. Dies ist besonders hilfreich beim Debugging und zum Überwachen von zeitkritischen Aufgaben.

Die Live-Logs zeigen:

* Echtzeit-Status der Job-Ausführung
* Detaillierte Fehler- und Warnmeldungen
* Fortschritt bei mehrstufigen Jobs
* Timestamp für jede Aktion

<Note>
  **Wichtig:** Nutze die harten Resets und Löschungen mit Bedacht. Für die meisten Probleme reicht ein softerer Reset vollkommen aus. Nur wenn nichts anderes hilft, nutze die härteren Optionen.
</Note>
