
# Referens för CLI

Alla åtgärder för Queuety är som standard tillgängliga via WP-CLI i namnrymden `wp queuety`.

Definiera `QUEUETY_CLI_COMMAND` innan Queuety startar om du vill publicera samma kommandoträd med en annan rot, till exempel `wp themequeue`.

För agenttestmiljöer och andra integrationer med virtuella bash-skal ska du se den här sidan som referens för människor och använda bryggan PHP som maskinkontrakt:

- `Queuety::cli_command_map()` visar den serialiserbara kommandokatalogen
- `Queuety::resolve_cli_command( $path, $args, $assoc_args )` omvandlar parsad indata `wp queuety ...` till en normaliserad körningsplan som prioriterar direkta anropsbara PHP

Tillståndsmaskiner har inga kommandon i det här trädet; granska dem via PHP API som beskrivs i [Tillståndsmaskiner](https://queuety.inline0.dev/sv/docs/state-machines).

## Jobbkommandon

### `wp queuety work`

Starta en arbetare som bearbetar jobb.

```bash
wp queuety work [--queue=<queue>] [--once] [--workers=<n>]
wp queuety work [--queue=<queue>] [--min-workers=<n>] --max-workers=<n>
```

| Alternativ | Beskrivning |
|---|---|
| `--queue=<queue>` | Queue(s) att bearbeta, kommaseparerade för prioritetsordning (standard: `default`) |
| `--once` | Bearbeta högst ett jobb och avsluta (avslutar också direkt när inget jobb kan hämtas) |
| `--workers=<n>` | Starta N arbetarprocesser (kräver tilläggen `pcntl` och `posix`, liksom `--min-workers` och `--max-workers`) |
| `--min-workers=<n>` | Minsta antal arbetare för en anpassningsbar pool. Kräver `--max-workers` |
| `--max-workers=<n>` | Högsta antal arbetare för en anpassningsbar pool |

```bash
# Single worker on default queue
wp queuety work

# Process a specific queue
wp queuety work --queue=emails

# Process multiple queues in priority order
wp queuety work --queue=critical,default,low

# One-shot mode
wp queuety work --once

# Multi-worker mode
wp queuety work --workers=4

# Adaptive worker pool
wp queuety work --queue=providers --min-workers=2 --max-workers=6
```

När flera köer anges försöker arbetaren hämta från varje kö i angiven ordning. Den första kön med ett tillgängligt jobb vinner. `--workers` håller poolen fast. `--min-workers` och `--max-workers` aktiverar adaptiv skalning för samma kommandogränssnitt. Se [Arbetare](https://queuety.inline0.dev/sv/docs/features/workers) för driftsättningsstrategier och [Resurshantering](https://queuety.inline0.dev/sv/docs/features/resource-management) för antagningsmodellen bakom adaptiva pooler.

### `wp queuety flush`

Bearbeta alla väntande jobb och avsluta.

```bash
wp queuety flush [--queue=<queue>]
```

| Alternativ | Beskrivning |
|---|---|
| `--queue=<queue>` | Queue(s) att tömma, kommaseparerade för prioritetsordning (standard: `default`) |

```bash
# Flush a single queue
wp queuety flush --queue=emails

# Flush multiple queues in priority order
wp queuety flush --queue=critical,default,low
```

### `wp queuety dispatch`

Skicka ut ett jobb från kommandoraden.

```bash
wp queuety dispatch <handler> [--payload=<json>] [--queue=<queue>] [--priority=<priority>] [--delay=<seconds>]
```

| Alternativ | Beskrivning |
|---|---|
| `<handler>` | Hanterarnamn eller klass (krävs) |
| `--payload=<json>` | Nyttolast JSON (standard: `{}`) |
| `--queue=<queue>` | Könamn (standard: `default`) |
| `--priority=<priority>` | Prioritetsnivå 0-3 (standard: `0`) |
| `--delay=<seconds>` | Fördröjning i sekunder (standard: `0`) |

```bash
wp queuety dispatch send_email --payload='{"to":"user@example.com"}' --queue=emails
```

### `wp queuety status`

Visa köstatistik.

```bash
wp queuety status [--queue=<queue>]
```

| Alternativ | Beskrivning |
|---|---|
| `--queue=<queue>` | Filtrera efter könamn |

### `wp queuety list`

Visa jobb.

```bash
wp queuety list [--queue=<queue>] [--status=<status>] [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `--queue=<queue>` | Filtrera efter kö |
| `--status=<status>` | Filtrera efter status (`pending`, `processing`, `completed`, `failed`, `buried`) |
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

### `wp queuety inspect`

Visa fullständig information om ett jobb, inklusive nyttolast och logghistorik.

```bash
wp queuety inspect <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Jobb-ID (krävs) |

### `wp queuety retry`

Gör ett nytt försök med ett specifikt jobb.

```bash
wp queuety retry <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Jobb-ID att försöka igen (krävs) |

### `wp queuety retry-buried`

Gör ett nytt försök med alla begravda jobb.

```bash
wp queuety retry-buried
```

### `wp queuety bury`

Begrava ett jobb manuellt.

```bash
wp queuety bury <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Jobb-ID att begrava (krävs) |

### `wp queuety delete`

Ta bort ett jobb.

```bash
wp queuety delete <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Jobb-ID att ta bort (krävs) |

### `wp queuety recover`

Återställ inaktuella jobb som fastnat i status `processing`.

```bash
wp queuety recover
```

### `wp queuety purge`

Rensa slutförda jobb.

```bash
wp queuety purge [--older-than=<days>]
```

| Alternativ | Beskrivning |
|---|---|
| `--older-than=<days>` | Ta bort jobb som är äldre än N dagar (standard: `QUEUETY_RETENTION_DAYS`) |

### `wp queuety pause`

Pausa en kö så att arbetarna hoppar över den.

```bash
wp queuety pause <queue>
```

| Alternativ | Beskrivning |
|---|---|
| `<queue>` | Könamn att pausa (krävs) |

### `wp queuety resume`

Återuppta en pausad kö.

```bash
wp queuety resume <queue>
```

| Alternativ | Beskrivning |
|---|---|
| `<queue>` | Könamn att återuppta (krävs) |

### `wp queuety metrics`

Visa mätvärden per hanterare.

```bash
wp queuety metrics [--minutes=<minutes>] [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `--minutes=<minutes>` | Tidsfönster i minuter (standard: `60`) |
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

### `wp queuety discover`

Identifiera hanterarklasser i en katalog.

```bash
wp queuety discover <directory> <namespace> [--register]
```

| Alternativ | Beskrivning |
|---|---|
| `<directory>` | Katalog att genomsöka efter hanterarklasser (krävs) |
| `<namespace>` | PSR-4-namnrymdsprefix för katalogen (krävs) |
| `--register` | Registrera identifierade hanterare |

## Arbetsflödeskommandon

### `wp queuety workflow status`

Visa arbetsflödets status och förlopp.

```bash
wp queuety workflow status <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |

`status` visar det aktuella steget, valfritt stegnamn, metadata för version/hash, vänteläge, artefaktsammanfattning och ett `WaitInfo`-JSON-objekt när arbetsflödet väntar på signaler eller beroenden.

### `wp queuety workflow list`

Visa arbetsflöden.

```bash
wp queuety workflow list [--status=<status>] [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `--status=<status>` | Filtrera efter status: `running`, `completed`, `failed`, `paused`, `waiting_for_signal`, `waiting_for_workflows`, `cancelled` |
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

Kommandot returnerar högst 50 arbetsflöden. Det läser ett värde `--limit`, men WP-CLI avvisar för närvarande flaggan eftersom kommandot inte deklarerar den ([#12](https://github.com/inline0/queuety/issues/12)); använd `Queuety::list_workflows()` för en annan gräns.

Standardtabellen innehåller `StepName` och `WaitMode`, så det blir enklare att få en överblick över blockerade arbetsflöden.

### `wp queuety workflow retry`

Försök köra om ett misslyckat arbetsflöde från steget där det misslyckades.

```bash
wp queuety workflow retry <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |

### `wp queuety workflow approve`

Skicka en godkännandesignal till ett arbetsflöde.

```bash
wp queuety workflow approve <id> [--data=<json>] [--signal=<name>]
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `--data=<json>` | Valfri objektbaserad nyttolast JSON |
| `--signal=<name>` | Åsidosätt namnet på godkännandesignalen (standard: `approval`, som motsvarar `wait_for_approval()`; ett steg `wait_for_decision()` lyssnar som standard efter `approved`, så ange `--signal=approved` där) |

### `wp queuety workflow reject`

Skicka en avslagsignal till ett arbetsflöde.

```bash
wp queuety workflow reject <id> [--data=<json>] [--signal=<name>]
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `--data=<json>` | Valfri objektbaserad nyttolast JSON |
| `--signal=<name>` | Åsidosätt namnet på avslagsignalen (standard: `rejected`) |

### `wp queuety workflow input`

Skicka strukturerad indata till ett arbetsflöde.

```bash
wp queuety workflow input <id> [--data=<json>] [--signal=<name>]
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `--data=<json>` | Valfri objektbaserad nyttolast JSON |
| `--signal=<name>` | Åsidosätt namnet på indatasignalen (standard: `input`) |

### `wp queuety workflow artifacts`

Visa sparade artefakter för ett arbetsflöde.

```bash
wp queuety workflow artifacts <id> [--format=<format>] [--with-content]
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `--format=<format>` | Utdataformat: `table` (standard) eller `json` |
| `--with-content` | Inkludera artefaktinnehåll i utdata |

### `wp queuety workflow artifact`

Visa en sparad artefakt för ett arbetsflöde.

```bash
wp queuety workflow artifact <id> <key>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `<key>` | Artefaktnyckel (krävs) |

### `wp queuety workflow pause`

Pausa ett pågående arbetsflöde.

```bash
wp queuety workflow pause <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |

### `wp queuety workflow resume`

Återuppta ett pausat arbetsflöde.

```bash
wp queuety workflow resume <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |

### `wp queuety workflow cancel`

Avbryt ett arbetsflöde som varken är `completed` eller `cancelled`. I en enda transaktion sätter Queuety statusen till `cancelled`, begraver arbetsflödets väntande och pågående jobb samt loggar `workflow_cancelled`; därefter körs kompensationsåtgärder och eventuella registrerade rensningshanterare.

```bash
wp queuety workflow cancel <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID att avbryta (krävs) |

```bash
wp queuety workflow cancel 42
```

### `wp queuety workflow timeline`

Visa händelsetidslinjen för ett arbetsflöde. Visar alla steghändelser (startade, slutförda, misslyckade) med tidsstämplar, hanterare och varaktighet.

```bash
wp queuety workflow timeline <id> [--limit=<limit>] [--offset=<offset>] [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `--limit=<limit>` | Högsta antal händelser att returnera (standard: `100`) |
| `--offset=<offset>` | Antal tidigare händelser att hoppa över (standard: `0`) |
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

```bash
wp queuety workflow timeline 42
```

Utdatakolumner: `ID`, `Step`, `Event`, `Handler`, `Duration_ms`, `Error`, `Created_at`.

### `wp queuety workflow state-at`

Visa det publika arbetsflödestillståndet efter att ett visst arbetsflödessteg har slutförts eller återupptagits.

```bash
wp queuety workflow state-at <id> <step>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `<step>` | Stegindex, börjar vid 0 (krävs) |

```bash
wp queuety workflow state-at 42 0
```

Se [Arbetsflödets händelselogg](https://queuety.inline0.dev/sv/docs/workflows/event-log) för information om vad som registreras och om användningsområden.

### `wp queuety workflow rewind`

Spola tillbaka ett arbetsflöde till ett tidigare steg och fortsätt från steget efter det. Tillståndet återställs från händelseloggen `state_after` för det angivna steget, och nästa steg (`<step> + 1`) läggs i kö; det angivna steget körs inte igen.

```bash
wp queuety workflow rewind <id> <step>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (krävs) |
| `<step>` | Stegindex att spola tillbaka till, börjar vid 0 (krävs) |

```bash
wp queuety workflow rewind 42 1
```

Se [Tidsresa](https://queuety.inline0.dev/sv/docs/workflows/time-travel) för detaljer.

### `wp queuety workflow fork`

Förgrena ett pågående arbetsflöde till en oberoende kopia av dess aktuella tillstånd. Den förgrenade kopian får ett nytt ID och fortsätter oberoende.

```bash
wp queuety workflow fork <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID att förgrena (krävs) |

```bash
wp queuety workflow fork 42
# Success: Workflow #42 forked. New workflow ID: 43.
```

Se [Förgrening](https://queuety.inline0.dev/sv/docs/workflows/forking) för detaljer.

### `wp queuety workflow export`

Exportera ett arbetsflödes fullständiga körningshistorik till JSON. Omfattar arbetsflödesraden, jobb, arbetsflödeshändelser, loggposter, sparade signaler och väntande beroenden för arbetsflödet.

```bash
wp queuety workflow export <id> [--output=<file>]
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | Arbetsflödes-ID (obligatoriskt) |
| `--output=<file>` | Filsökväg där JSON ska skrivas. Standard är stdout. |

```bash
# Print to stdout
wp queuety workflow export 42

# Write to a file
wp queuety workflow export 42 --output=/tmp/workflow-42.json
```

Se [Exportera och spela upp](https://queuety.inline0.dev/sv/docs/workflows/export-replay) för detaljer om strukturen JSON.

### `wp queuety workflow replay`

Spela upp ett exporterat arbetsflöde från en fil JSON. Skapar ett nytt arbetsflöde med det exporterade tillståndet, metadata och den historiska tidslinjen.

```bash
wp queuety workflow replay <file>
```

| Alternativ | Beskrivning |
|---|---|
| `<file>` | Sökväg till den exporterade filen JSON (krävs) |

```bash
wp queuety workflow replay /tmp/workflow-42.json
# Success: Workflow replayed. New workflow ID: 85.
```

Mer information finns i [Export och uppspelning](https://queuety.inline0.dev/sv/docs/workflows/export-replay).

## Schemaläggningskommandon

### `wp queuety schedule list`

Visa alla återkommande scheman.

```bash
wp queuety schedule list [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

### `wp queuety schedule add`

Lägg till ett återkommande schema.

```bash
wp queuety schedule add <handler> [--every=<interval>] [--cron=<expression>] [--payload=<json>] [--queue=<queue>]
```

| Alternativ | Beskrivning |
|---|---|
| `<handler>` | Hanterarnamn eller klass (krävs) |
| `--every=<interval>` | Intervalluttryck (e.g. `1 hour`, `30 minutes`) |
| `--cron=<expression>` | Uttryck Cron (e.g. `0 3 * * *`) |
| `--payload=<json>` | Nyttolast JSON (standard: `{}`) |
| `--queue=<queue>` | Könamn (standard: `default`) |

Du måste ange antingen `--every` eller `--cron`.

```bash
wp queuety schedule add cleanup_handler --every="1 hour"
wp queuety schedule add nightly_report --cron="0 3 * * *" --queue=reports
```

### `wp queuety schedule remove`

Ta bort ett schema med hanterarnamn.

```bash
wp queuety schedule remove <handler>
```

| Alternativ | Beskrivning |
|---|---|
| `<handler>` | Hanterarnamn att ta bort (krävs) |

### `wp queuety schedule run`

Utlös ett schemaläggartick manuellt. Lägger jobb i kö för alla scheman vars tid har infallit.

```bash
wp queuety schedule run
```

## Loggkommandon

### `wp queuety log`

Sök i loggposter.

```bash
wp queuety log [--job=<id>] [--workflow=<id>] [--handler=<name>] [--event=<event>] [--since=<datetime>] [--limit=<n>] [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `--job=<id>` | Filtrera efter jobb-ID |
| `--workflow=<id>` | Filtrera efter arbetsflödes-ID |
| `--handler=<name>` | Filtrera efter hanterarnamn |
| `--event=<event>` | Filtrera efter händelsetyp (`started`, `completed`, `failed`, `buried`, `retried`, `workflow_started`, `workflow_completed`, `workflow_failed`, `workflow_paused`, `workflow_resumed`, `workflow_cancelled`, `workflow_rewound`, `workflow_forked`, `workflow_deadline_exceeded`, `debug`) |
| `--since=<datetime>` | Visa poster sedan detta datum och klockslag |
| `--limit=<n>` | Högsta antal poster att visa (standard: `50`) |
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

Filter kombineras inte: Queuety använder det första som anges, i ordningen `--job`, `--workflow`, `--handler`, `--event`, `--since`. `--job` och `--workflow` returnerar alla poster, äldst först, och ignorerar `--limit`. `--handler` och `--event` returnerar de senaste posterna först. Utan filter läser kommandot de senaste 24 timmarna; den frågan och `--since` listar poster äldst först, så `--limit` behåller de äldsta posterna i tidsfönstret.

```bash
# Logs from the last 24 hours (oldest first)
wp queuety log

# Logs for a job
wp queuety log --job=42

# Failed events
wp queuety log --event=failed --limit=100

# Logs since a specific time
wp queuety log --since="2025-03-01 00:00:00"
```

### Rensa loggar

`LogCommand` definierar ett underkommando `purge` (`wp queuety log purge --older-than=<days>`), men WP-CLI registrerar `wp queuety log` som ett enda kommando, så underkommandot går inte att köra och misslyckas med "Too many positional arguments: purge" ([#11](https://github.com/inline0/queuety/issues/11)). Rensa gamla loggposter från PHP i stället:

```bash
wp eval 'echo Queuety\Queuety::purge_logs( 30 );'
```

## Webhook-kommandon

### `wp queuety webhook add`

Registrera en webhook URL för en händelse.

```bash
wp queuety webhook add <event> <url>
```

| Alternativ | Beskrivning |
|---|---|
| `<event>` | Händelsenamn: `job.completed`, `job.failed`, `job.buried` eller `workflow.failed` (obligatoriskt) |
| `<url>` | URL att skicka aviseringar till med POST (obligatoriskt) |

```bash
wp queuety webhook add job.buried https://hooks.slack.com/services/...
```

### `wp queuety webhook list`

Visa alla registrerade webhooks.

```bash
wp queuety webhook list [--format=<format>]
```

| Alternativ | Beskrivning |
|---|---|
| `--format=<format>` | Utdataformat: `table` (standard), `json`, `csv`, `yaml` |

### `wp queuety webhook remove`

Ta bort en webhook med dess ID.

```bash
wp queuety webhook remove <id>
```

| Alternativ | Beskrivning |
|---|---|
| `<id>` | ID för webhooken som ska tas bort (obligatoriskt) |
