# Messenger Worker starten

## Windows (Aktuelles Fenster)

```powershell
cd C:\dev\test_projekt
php bin/console messenger:consume async -vv
```

## Windows (Im Hintergrund mit Start-Job)

```powershell
cd C:\dev\test_projekt
Start-Job -ScriptBlock {
    Set-Location "C:\dev\test_projekt"
    php bin/console messenger:consume async -vv
}

# Status prüfen
Get-Job

# Logs anzeigen
Receive-Job -Id 1 -Keep
```

## Linux/Mac

```bash
cd /path/to/test_projekt
php bin/console messenger:consume async -vv &
```

## Testen

Nachdem der Worker läuft:

1. Gehen Sie zu `/admin/calendar/`
2. Konfigurieren Sie eine Kalender-Verbindung
3. Aktivieren Sie den **Auto-Sync Toggle**
4. Gehen Sie zu `/admin/courses/`
5. Bearbeiten Sie einen Kurs (z.B. Namen ändern)
6. **Der Kurs wird automatisch zum Kalender synchronisiert!**

Prüfen Sie die Logs:
```powershell
Get-Content var/log/dev.log -Tail 20
```

Sie sollten sehen:
```
[...] app.INFO: Calendar sync message dispatched {"course_id":123,"course_name":"...","provider":"ical","action":"update"} []
[...] app.INFO: Processing calendar sync message {"course_id":123,"action":"update","provider":"ical"} []
[...] app.INFO: Course synced successfully {"course_id":123,"course_name":"...","provider":"ical","action":"update"} []
```

## Wichtig

- Der Worker muss **immer laufen**, damit Auto-Sync funktioniert
- Wenn der Worker stoppt, werden Messages in der Queue gespeichert und beim nächsten Start verarbeitet
- Für Produktionsumgebungen: Verwenden Sie einen Prozess-Manager (systemd, supervisor, etc.)

