
# Referenca CLI

Vse operacije Queuety so privzeto na voljo prek WP-CLI v imenskem prostoru `wp queuety`.

Določite `QUEUETY_CLI_COMMAND`, preden se zažene Queuety, če želite objaviti isto drevo ukazov pod drugim korenom, na primer `wp themequeue`.

Za preizkuševalna ogrodja agentov in druge integracije navidezne lupine bash uporabite to stran kot referenco za ljudi, most PHP pa kot pogodbo za strojno obdelavo:

- `Queuety::cli_command_map()` razkrije serializljiv katalog ukazov
- `Queuety::resolve_cli_command( $path, $args, $assoc_args )` pretvori razčlenjeni vhod `wp queuety ...` v normaliziran načrt izvajanja, ki daje prednost neposrednim klicnim elementom PHP

V tem drevesu ni ukazov stanjskih avtomatov; preglejte jih prek PHP API, opisanih v [Stanjski avtomati](https://queuety.inline0.dev/sl/docs/state-machines).

## Ukazi opravil

### `wp queuety work`

Zažene delavca, ki obdeluje opravila.

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

| Možnost | Opis |
|---|---|
| `--queue=<queue>` | Queue(s) za obdelavo; imena, ločena z vejicami, določajo prednostni vrstni red (privzeto: `default`) |
| `--once` | Obdela največ eno opravilo in se konča (konča se tudi takoj, če ni na voljo nobeno opravilo) |
| `--workers=<n>` | Razcepi se na N delavskih procesov (zahteva razširitvi `pcntl` in `posix`, prav tako kot `--min-workers` in `--max-workers`) |
| `--min-workers=<n>` | Najmanjše število delavcev za prilagodljivo skupino. Zahteva `--max-workers` |
| `--max-workers=<n>` | Največje število delavcev za prilagodljivo skupino |

```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
```

Ko je določenih več čakalnih vrst, delavec poskuša prevzeti opravilo iz vsake po navedenem vrstnem redu. Zmaga prva čakalna vrsta z razpoložljivim opravilom. `--workers` ohrani nespremenjeno velikost skupine. `--min-workers` in `--max-workers` omogočita prilagodljivo spreminjanje velikosti za isti nabor ukazov. Strategije uvajanja so opisane v razdelku [Delavci](https://queuety.inline0.dev/sl/docs/features/workers), model sprejemanja za prilagodljive skupine pa v razdelku [Upravljanje virov](https://queuety.inline0.dev/sl/docs/features/resource-management).

### `wp queuety flush`

Obdela vsa čakajoča opravila in se konča.

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

| Možnost | Opis |
|---|---|
| `--queue=<queue>` | Queue(s) za izpraznitev; imena, ločena z vejicami, določajo prednostni vrstni red (privzeto: `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`

Odpošlje opravilo iz ukazne vrstice.

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

| Možnost | Opis |
|---|---|
| `<handler>` | Ime ali razred obravnavalnika (obvezno) |
| `--payload=<json>` | Koristna vsebina JSON (privzeto: `{}`) |
| `--queue=<queue>` | Ime čakalne vrste (privzeto: `default`) |
| `--priority=<priority>` | Raven prednosti 0-3 (privzeto: `0`) |
| `--delay=<seconds>` | Zakasnitev v sekundah (privzeto: `0`) |

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

### `wp queuety status`

Prikaže statistiko čakalnih vrst.

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

| Možnost | Opis |
|---|---|
| `--queue=<queue>` | Filtrira po imenu čakalne vrste |

### `wp queuety list`

Izpiše seznam opravil.

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

| Možnost | Opis |
|---|---|
| `--queue=<queue>` | Filtrira po čakalni vrsti |
| `--status=<status>` | Filtrira po stanju (`pending`, `processing`, `completed`, `failed`, `buried`) |
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

### `wp queuety inspect`

Prikaže vse podrobnosti opravila, vključno s koristno vsebino in zgodovino dnevnika.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID opravila (obvezno) |

### `wp queuety retry`

Ponovno poskusi zagnati določeno opravilo.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID opravila, pri katerem želite ponoviti poskus (obvezno) |

### `wp queuety retry-buried`

Ponovno poskusi zagnati vsa arhivirana opravila.

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

### `wp queuety bury`

Ročno arhivira opravilo.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID opravila za arhiviranje (obvezno) |

### `wp queuety delete`

Izbriše opravilo.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID opravila za izbris (obvezno) |

### `wp queuety recover`

Obnovi zastarela opravila, ki so obtičala v stanju `processing`.

```bash
wp queuety recover
```

### `wp queuety purge`

Odstrani dokončana opravila.

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

| Možnost | Opis |
|---|---|
| `--older-than=<days>` | Izbriše opravila, starejša od N dni (privzeto: `QUEUETY_RETENTION_DAYS`) |

### `wp queuety pause`

Začasno ustavite čakalno vrsto, da jo delavci preskočijo.

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

| Možnost | Opis |
|---|---|
| `<queue>` | Ime čakalne vrste za začasno ustavitev (obvezno) |

### `wp queuety resume`

Nadaljujte začasno ustavljeno čakalno vrsto.

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

| Možnost | Opis |
|---|---|
| `<queue>` | Ime čakalne vrste za nadaljevanje (obvezno) |

### `wp queuety metrics`

Prikaže metrike za posamezne obravnavalnike.

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

| Možnost | Opis |
|---|---|
| `--minutes=<minutes>` | Časovno okno v minutah (privzeto: `60`) |
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

### `wp queuety discover`

Odkrije razrede obravnavalnikov v imeniku.

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

| Možnost | Opis |
|---|---|
| `<directory>` | Imenik za iskanje razredov obravnavalnikov (obvezno) |
| `<namespace>` | Predpona imenskega prostora PSR-4 za imenik (obvezno) |
| `--register` | Dejansko registrira odkrite obravnavalnike |

## Ukazi potekov dela

### `wp queuety workflow status`

Prikaže stanje in napredek poteka dela.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |

`status` izpiše trenutni korak, neobvezno ime koraka, metapodatke o različici in zgoščeni vrednosti, način čakanja, povzetek artefaktov ter blok `WaitInfo` JSON, kadar potek dela čaka na signale ali odvisnosti.

### `wp queuety workflow list`

Izpiše seznam potekov dela.

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

| Možnost | Opis |
|---|---|
| `--status=<status>` | Filtrira po stanju: `running`, `completed`, `failed`, `paused`, `waiting_for_signal`, `waiting_for_workflows`, `cancelled` |
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

Ukaz vrne največ 50 potekov dela. Prebere vrednost `--limit`, vendar WP-CLI trenutno zavrača zastavico, ker je ukaz ne določa ([#12](https://github.com/inline0/queuety/issues/12)); za drugačno omejitev uporabite `Queuety::list_workflows()`.

Privzeta tabela vključuje `StepName` in `WaitMode`, da je čakajoče poteke dela lažje pregledati.

### `wp queuety workflow retry`

Ponovno poskusi neuspešni potek dela od koraka, v katerem je prišlo do napake.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |

### `wp queuety workflow approve`

Pošlje poteku dela signal odobritve.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `--data=<json>` | Neobvezen objekt koristne vsebine JSON |
| `--signal=<name>` | Preglasi ime signala odobritve (privzeto: `approval`, ki se ujema z `wait_for_approval()`; korak `wait_for_decision()` privzeto čaka na `approved`, zato tam podajte `--signal=approved`) |

### `wp queuety workflow reject`

Pošlje poteku dela signal zavrnitve.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `--data=<json>` | Neobvezen objekt koristne vsebine JSON |
| `--signal=<name>` | Preglasi ime signala zavrnitve (privzeto: `rejected`) |

### `wp queuety workflow input`

Pošlje poteku dela strukturiran vhod.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `--data=<json>` | Neobvezen objekt koristne vsebine JSON |
| `--signal=<name>` | Preglasi ime vhodnega signala (privzeto: `input`) |

### `wp queuety workflow artifacts`

Izpiše seznam shranjenih artefaktov za potek dela.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `--format=<format>` | Izhodni format: `table` (privzeto) ali `json` |
| `--with-content` | Vključi vsebino artefakta v izhod |

### `wp queuety workflow artifact`

Prikaže en shranjen artefakt za potek dela.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `<key>` | Ključ artefakta (obvezno) |

### `wp queuety workflow pause`

Začasno ustavi potek dela, ki se izvaja.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |

### `wp queuety workflow resume`

Nadaljuj začasno ustavljen potek dela.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |

### `wp queuety workflow cancel`

Prekliče potek dela, ki še ni v stanju `completed` ali `cancelled`. V eni transakciji Queuety nastavi stanje na `cancelled`, arhivira čakajoča in obdelovana opravila poteka dela ter zabeleži `workflow_cancelled`; nato izvede kompenzacije in vse registrirane obravnavalnike čiščenja.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela za preklic (obvezno) |

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

### `wp queuety workflow timeline`

Prikaže časovnico dogodkov poteka dela. Prikaže vse dogodke korakov (začetek, dokončanje, neuspeh) z njihovimi časovnimi žigi, obravnavalniki in trajanji.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `--limit=<limit>` | Največje število vrnjenih dogodkov (privzeto: `100`) |
| `--offset=<offset>` | Število preskočenih prejšnjih dogodkov (privzeto: `0`) |
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

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

Izhodni stolpci: `ID`, `Step`, `Event`, `Handler`, `Duration_ms`, `Error`, `Created_at`.

### `wp queuety workflow state-at`

Prikaže javno stanje poteka dela po dokončanju ali nadaljevanju določenega koraka.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `<step>` | Indeks koraka, od 0 naprej (obvezno) |

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

Za podrobnosti o zabeleženih podatkih in primerih uporabe glejte [Dnevnik dogodkov poteka dela](https://queuety.inline0.dev/sl/docs/workflows/event-log).

### `wp queuety workflow rewind`

Povrne potek dela na prejšnji korak in nadaljuje z naslednjim. Stanje se obnovi iz dnevnika dogodkov `state_after` za navedeni korak, naslednji korak (`<step> + 1`) pa se uvrsti v čakalno vrsto; navedenega koraka ne zažene znova.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `<step>` | Indeks koraka, na katerega želite povrniti potek, od 0 naprej (obvezno) |

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

Za podrobnosti glejte [Potovanje skozi čas](https://queuety.inline0.dev/sl/docs/workflows/time-travel).

### `wp queuety workflow fork`

Razcepi potek dela, ki se izvaja, v neodvisno kopijo trenutnega stanja. Razcepljeni potek dela dobi nov ID in se nadaljuje samostojno.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela za razcep (obvezno) |

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

Za podrobnosti glejte [Razcepljanje](https://queuety.inline0.dev/sl/docs/workflows/forking).

### `wp queuety workflow export`

Izvozi celotno zgodovino izvajanja poteka dela v JSON. Vključuje vrstico poteka dela, opravila, dogodke poteka dela, vnose dnevnika, shranjene signale in čakanja na odvisnosti poteka dela.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID poteka dela (obvezno) |
| `--output=<file>` | Pot datoteke, v katero se zapiše JSON. Privzeto je stdout. |

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

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

Za podrobnosti o strukturi JSON glejte [Izvoz in ponovitev izvajanja](https://queuety.inline0.dev/sl/docs/workflows/export-replay).

### `wp queuety workflow replay`

Ponovno predvaja izvožen potek dela iz datoteke JSON. Ustvari nov potek dela z izvoženim stanjem, metapodatki in zgodovinsko časovnico.

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

| Možnost | Opis |
|---|---|
| `<file>` | Pot do izvožene datoteke JSON (obvezno) |

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

Podrobnosti so v razdelku [Izvoz in ponovni zagon](https://queuety.inline0.dev/sl/docs/workflows/export-replay).

## Ukazi urnika

### `wp queuety schedule list`

Izpiše seznam vseh ponavljajočih se urnikov.

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

| Možnost | Opis |
|---|---|
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

### `wp queuety schedule add`

Doda ponavljajoči se urnik.

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

| Možnost | Opis |
|---|---|
| `<handler>` | Ime ali razred obravnavalnika (obvezno) |
| `--every=<interval>` | Izraz intervala (e.g, `1 hour`, `30 minutes`) |
| `--cron=<expression>` | Izraz Cron (e.g, `0 3 * * *`) |
| `--payload=<json>` | Koristna vsebina JSON (privzeto: `{}`) |
| `--queue=<queue>` | Ime čakalne vrste (privzeto: `default`) |

Določiti morate bodisi `--every` bodisi `--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`

Odstrani urnik po imenu obravnavalnika.

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

| Možnost | Opis |
|---|---|
| `<handler>` | Ime obravnavalnika za odstranitev (obvezno) |

### `wp queuety schedule run`

Ročno sproži takt urnika. V čakalno vrsto uvrsti opravila za vse zapadle urnike.

```bash
wp queuety schedule run
```

## Ukazi dnevnika

### `wp queuety log`

Poizveduje po vnosih dnevnika.

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

| Možnost | Opis |
|---|---|
| `--job=<id>` | Filtriraj po ID-ju opravila |
| `--workflow=<id>` | Filtriraj po ID-ju poteka dela |
| `--handler=<name>` | Filtriraj po imenu obravnavalnika |
| `--event=<event>` | Filtriraj po vrsti dogodka (`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>` | Prikaži vnose od tega datuma in ure dalje |
| `--limit=<n>` | Največje število prikazanih vnosov (privzeto: `50`) |
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

Filtri se ne kombinirajo: Queuety uporabi prvi navedeni filter v vrstnem redu `--job`, `--workflow`, `--handler`, `--event`, `--since`. `--job` in `--workflow` vrneta vse vnose, najprej najstarejše, ter prezreta `--limit`. `--handler` in `--event` vrneta najnovejše vnose najprej. Če ni filtra, ukaz prebere zadnjih 24 ur; ta poizvedba in `--since` razvrstita vnose od najstarejših dalje, zato `--limit` v časovnem oknu ohrani najstarejše vnose.

```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"
```

### Brisanje dnevnikov

`LogCommand` določa podukaz `purge` (`wp queuety log purge --older-than=<days>`), vendar WP-CLI registrira `wp queuety log` kot samostojen ukaz, zato podukaza ni mogoče zagnati in ukaz se konča z napako »Too many positional arguments: purge« ([#11](https://github.com/inline0/queuety/issues/11)). Stare vnose dnevnika raje izbrišite z PHP:

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

## Ukazi za spletne kavlje

### `wp queuety webhook add`

Registrirajte spletni kavelj URL za dogodek.

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

| Možnost | Opis |
|---|---|
| `<event>` | Ime dogodka: `job.completed`, `job.failed`, `job.buried` ali `workflow.failed` (obvezno) |
| `<url>` | URL za pošiljanje obvestil z metodo POST (obvezno) |

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

### `wp queuety webhook list`

Prikažite vse registrirane spletne kavlje.

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

| Možnost | Opis |
|---|---|
| `--format=<format>` | Izhodni format: `table` (privzeto), `json`, `csv`, `yaml` |

### `wp queuety webhook remove`

Odstranite spletni kavelj po ID-ju.

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

| Možnost | Opis |
|---|---|
| `<id>` | ID spletnega kavlja za odstranitev (obvezno) |
