
# CLI-viite

Kaikki Queuety-toiminnot ovat oletusarvoisesti käytettävissä WP-CLI:n kautta `wp queuety`-nimiavaruudessa.

Määritä `QUEUETY_CLI_COMMAND` ennen kuin Queuety käynnistyy, jos haluat julkaista saman komentopuun eri juuressa, kuten `wp themequeue`.

Käsittele tätä sivua agenttien testikehysten ja muiden virtuaalisten bash-integraatioiden ihmislukijalle tarkoitettuna viitteenä ja käytä PHP-siltaa koneellisesti luettavana sopimuksena:

- `Queuety::cli_command_map()` tarjoaa sarjoitettavan komentoluettelon
- `Queuety::resolve_cli_command( $path, $args, $assoc_args )` muuntaa jäsennetyn `wp queuety ...`-syötteen normalisoiduksi suoritussuunnitelmaksi, joka suosii suoria PHP-kutsuttavia

Tilakoneilla ei ole komentoja tässä puussa. Tarkastele niitä PHP API -toiminnon kautta, joka on kuvattu kohdassa [State Machines](https://queuety.inline0.dev/fi/docs/state-machines).

## Työkomennot

### `wp queuety work`

Käynnistä työprosessi, joka käsittelee töitä.

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

| Valitsin | Kuvaus |
|---|---|
| `--queue=<queue>` | Käsiteltävät Queue(s)-jonot pilkuilla eroteltuina tärkeysjärjestyksessä (oletus: `default`) |
| `--once` | Käsittele enintään yksi työ ja poistu (poistuu heti myös, jos käsittelyyn ei ole saatavilla töitä) |
| `--workers=<n>` | Käynnistä N työprosessia (vaatii `pcntl`- ja `posix`-laajennukset, samoin kuin `--min-workers` ja `--max-workers`) |
| `--min-workers=<n>` | Mukautuvan työprosessijoukon vähimmäismäärä. Vaatii `--max-workers` |
| `--max-workers=<n>` | Mukautuvan työprosessijoukon enimmäismäärä |

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

Kun määritetään useita jonoja, työprosessi yrittää varata töitä kustakin jonosta annetussa järjestyksessä. Ensimmäinen jono, jossa on saatavilla oleva työ, valitaan. `--workers` pitää joukon koon kiinteänä. `--min-workers` ja `--max-workers` ottavat käyttöön saman komentorajapinnan mukautuvan skaalauksen. Katso kohdasta [Workers](https://queuety.inline0.dev/fi/docs/features/workers) käyttöönoton strategiat ja kohdasta [Resource Management](https://queuety.inline0.dev/fi/docs/features/resource-management) mukautuvien joukkojen taustalla oleva resurssien jakomalli.

### `wp queuety flush`

Käsittele kaikki odottavat työt ja poistu.

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

| Valitsin | Kuvaus |
|---|---|
| `--queue=<queue>` | Tyhjennettävät Queue(s)-jonot pilkuilla eroteltuina tärkeysjärjestyksessä (oletus: `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`

Lähetä työ suoritettavaksi komentoriviltä.

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

| Valitsin | Kuvaus |
|---|---|
| `<handler>` | Käsittelijän nimi tai luokka (pakollinen) |
| `--payload=<json>` | JSON-hyötykuorma (oletus: `{}`) |
| `--queue=<queue>` | Jonon nimi (oletus: `default`) |
| `--priority=<priority>` | Tärkeysaste 0–3 (oletus: `0`) |
| `--delay=<seconds>` | Viive sekunteina (oletus: `0`) |

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

### `wp queuety status`

Näytä jonotilastot.

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

| Valitsin | Kuvaus |
|---|---|
| `--queue=<queue>` | Suodata jonon nimen mukaan |

### `wp queuety list`

Luettele työt.

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

| Valitsin | Kuvaus |
|---|---|
| `--queue=<queue>` | Suodata jonon mukaan |
| `--status=<status>` | Suodata tilan mukaan (`pending`, `processing`, `completed`, `failed`, `buried`) |
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

### `wp queuety inspect`

Näytä työn kaikki tiedot, myös hyötykuorma ja lokihistoria.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työn tunniste (pakollinen) |

### `wp queuety retry`

Yritä suorittaa tietty työ uudelleen.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Uudelleen suoritettavan työn tunniste (pakollinen) |

### `wp queuety retry-buried`

Yritä suorittaa kaikki haudatut työt uudelleen.

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

### `wp queuety bury`

Hauta työ manuaalisesti.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Haudattavan työn tunniste (pakollinen) |

### `wp queuety delete`

Poista työ.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Poistettavan työn tunniste (pakollinen) |

### `wp queuety recover`

Palauta vanhentuneet työt, jotka ovat juuttuneet tilaan `processing`.

```bash
wp queuety recover
```

### `wp queuety purge`

Tyhjennä valmiit työt.

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

| Valitsin | Kuvaus |
|---|---|
| `--older-than=<days>` | Poista työt, jotka ovat vanhempia kuin N päivää (oletus: `QUEUETY_RETENTION_DAYS`) |

### `wp queuety pause`

Keskeytä jono, jotta työntekijät ohittavat sen.

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

| Valitsin | Kuvaus |
|---|---|
| `<queue>` | Keskeytettävän jonon nimi (pakollinen) |

### `wp queuety resume`

Jatka keskeytettyä jonoa.

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

| Valitsin | Kuvaus |
|---|---|
| `<queue>` | Jatkettavan jonon nimi (pakollinen) |

### `wp queuety metrics`

Näytä käsittelijäkohtaiset mittarit.

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

| Valitsin | Kuvaus |
|---|---|
| `--minutes=<minutes>` | Aikaikkuna minuutteina (oletus: `60`) |
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

### `wp queuety discover`

Etsi käsittelijäluokat hakemistosta.

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

| Valitsin | Kuvaus |
|---|---|
| `<directory>` | Hakemisto, josta käsittelijäluokkia etsitään (pakollinen) |
| `<namespace>` | Hakemiston PSR-4-nimiavaruuden etuliite (pakollinen) |
| `--register` | Rekisteröi löydetyt käsittelijät |

## Työnkulkukomennot

### `wp queuety workflow status`

Näytä työnkulun tila ja edistyminen.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |

`status` tulostaa nykyisen vaiheen, valinnaisen vaiheen nimen, versio- ja tiivistemetadatan, odotustilan, artefaktien yhteenvedon ja `WaitInfo` JSON-blobin, kun työnkulku odottaa signaaleja tai riippuvuuksia.

### `wp queuety workflow list`

Luettele työnkulut.

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

| Valitsin | Kuvaus |
|---|---|
| `--status=<status>` | Suodata tilan mukaan: `running`, `completed`, `failed`, `paused`, `waiting_for_signal`, `waiting_for_workflows`, `cancelled` |
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

Komento palauttaa enintään 50 työnkulkua. Se lukee `--limit`-arvon, mutta WP-CLI hylkää valitsimen tällä hetkellä, koska komentoa ei ole määritetty käyttämään sitä ([#12](https://github.com/inline0/queuety/issues/12)); käytä `Queuety::list_workflows()`-valitsinta, jos haluat muuttaa enimmäismäärää.

Oletustaulukossa näkyvät `StepName` ja `WaitMode`, jotta estyneet työnkulut on helpompi löytää.

### `wp queuety workflow retry`

Yritä epäonnistunutta työnkulkua uudelleen sen epäonnistuneesta vaiheesta alkaen.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |

### `wp queuety workflow approve`

Lähetä hyväksymissignaali työnkululle.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `--data=<json>` | Valinnainen JSON-objektihyötykuorma |
| `--signal=<name>` | Ohita hyväksymissignaalin nimi (oletus: `approval`, joka vastaa arvoa `wait_for_approval()`; `wait_for_decision()`-vaihe kuuntelee oletusarvoisesti arvoa `approved`, joten anna sille `--signal=approved`) |

### `wp queuety workflow reject`

Lähetä hylkäyssignaali työnkululle.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `--data=<json>` | Valinnainen JSON-objektihyötykuorma |
| `--signal=<name>` | Ohita hylkäyssignaalin nimi (oletus: `rejected`) |

### `wp queuety workflow input`

Lähetä työnkululle rakenteista syötettä.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `--data=<json>` | Valinnainen JSON-objektihyötykuorma |
| `--signal=<name>` | Ohita syötesignaalin nimi (oletus: `input`) |

### `wp queuety workflow artifacts`

Luettele työnkulkuun tallennetut artefaktit.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `--format=<format>` | Tulostusmuoto: `table` (oletus) tai `json` |
| `--with-content` | Sisällytä artefaktin sisältö tulosteeseen |

### `wp queuety workflow artifact`

Näytä yksi työnkulkuun tallennettu artefakti.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `<key>` | Artefaktin avain (pakollinen) |

### `wp queuety workflow pause`

Keskeytä käynnissä oleva työnkulku.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |

### `wp queuety workflow resume`

Jatka keskeytettyä työnkulkua.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |

### `wp queuety workflow cancel`

Peruuta työnkulku, jonka tila ei jo ole `completed` tai `cancelled`. Yhdessä transaktiossa Queuety asettaa tilaksi `cancelled`, hautaa työnkulun odottavat ja käsittelyssä olevat työt sekä kirjaa lokiin arvon `workflow_cancelled`; sen jälkeen suoritetaan kompensaatiot ja mahdollinen rekisteröity siivouskäsittelijä.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Peruutettavan työnkulun tunniste (pakollinen) |

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

### `wp queuety workflow timeline`

Näytä työnkulun tapahtumajana. Siinä näkyvät kaikki vaiheiden tapahtumat (käynnistys, valmistuminen, epäonnistuminen) aikaleimoineen, käsittelijöineen ja kestoineen.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `--limit=<limit>` | Palautettavien tapahtumien enimmäismäärä (oletus: `100`) |
| `--offset=<offset>` | Ohitettavien aiempien tapahtumien määrä (oletus: `0`) |
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

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

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

### `wp queuety workflow state-at`

Näytä julkinen työnkulun tila, kun tietty työnkulun vaihe on valmistunut tai sitä on jatkettu.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `<step>` | Vaiheen järjestysnumero nollasta alkaen (pakollinen) |

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

Katso kohdasta [Workflow Event Log](https://queuety.inline0.dev/fi/docs/workflows/event-log), mitä tapahtumia kirjataan ja mihin niitä käytetään.

### `wp queuety workflow rewind`

Kelaa työnkulku aiempaan vaiheeseen ja jatka sitä seuraavasta vaiheesta. Tila palautetaan kyseisen vaiheen tapahtumalokista `state_after`, ja seuraava vaihe (`<step> + 1`) lisätään jonoon; kyseistä vaihetta ei suoriteta uudelleen.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `<step>` | Kelattavan vaiheen järjestysnumero nollasta alkaen (pakollinen) |

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

Katso lisätietoja kohdasta [Time Travel](https://queuety.inline0.dev/fi/docs/workflows/time-travel).

### `wp queuety workflow fork`

Haarauta käynnissä oleva työnkulku itsenäiseksi kopioksi sen nykyisessä tilassa. Haarautettu työnkulku saa uuden tunnisteen ja etenee itsenäisesti.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Haarautettavan työnkulun tunniste (pakollinen) |

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

Katso lisätietoja kohdasta [Forking](https://queuety.inline0.dev/fi/docs/workflows/forking).

### `wp queuety workflow export`

Vie työnkulun koko suoritushistoria tiedostoon JSON. Vienti sisältää työnkulun rivin, työt, työnkulun tapahtumat, lokimerkinnät, tallennetut signaalit ja työnkulun riippuvuuksien odotukset.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Työnkulun tunniste (pakollinen) |
| `--output=<file>` | JSON-tiedoston tallennuspolku. Oletusarvo on vakiotuloste. |

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

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

Katso kohdasta [Export and Replay](https://queuety.inline0.dev/fi/docs/workflows/export-replay) lisätietoja rakenteesta JSON.

### `wp queuety workflow replay`

Toista viety työnkulku tiedostosta JSON. Luo uusi työnkulku, jossa on viedyt tila- ja metatiedot sekä tapahtumajana.

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

| Valitsin | Kuvaus |
|---|---|
| `<file>` | Viedyn JSON-tiedoston polku (pakollinen) |

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

Katso lisätiedot kohdasta [Vienti ja toisto](https://queuety.inline0.dev/fi/docs/workflows/export-replay).

## Ajastuskomennot

### `wp queuety schedule list`

Luettele kaikki toistuvat ajastukset.

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

| Valitsin | Kuvaus |
|---|---|
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

### `wp queuety schedule add`

Lisää toistuva ajastus.

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

| Valitsin | Kuvaus |
|---|---|
| `<handler>` | Käsittelijän nimi tai luokka (pakollinen) |
| `--every=<interval>` | Aikavälilauseke (e.g. `1 hour`, `30 minutes`) |
| `--cron=<expression>` | Cron-lauseke (e.g. `0 3 * * *`) |
| `--payload=<json>` | JSON-hyötykuorma (oletus: `{}`) |
| `--queue=<queue>` | Jonon nimi (oletus: `default`) |

Määritä joko `--every` tai `--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`

Poista ajastus käsittelijän nimen perusteella.

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

| Valitsin | Kuvaus |
|---|---|
| `<handler>` | Poistettavan käsittelijän nimi (pakollinen) |

### `wp queuety schedule run`

Käynnistä ajastimen suoritus manuaalisesti. Lisää kaikkien erääntyneiden ajastusten työt jonoon.

```bash
wp queuety schedule run
```

## Lokikomennot

### `wp queuety log`

Hae lokimerkintöjä.

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

| Valitsin | Kuvaus |
|---|---|
| `--job=<id>` | Suodata työn tunnisteen mukaan |
| `--workflow=<id>` | Suodata työnkulun tunnisteen mukaan |
| `--handler=<name>` | Suodata käsittelijän nimen mukaan |
| `--event=<event>` | Suodata tapahtumatyypin mukaan (`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>` | Näytä merkinnät tästä päivämäärästä ja kellonajasta alkaen |
| `--limit=<n>` | Näytettävien merkintöjen enimmäismäärä (oletus: `50`) |
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

Suodattimia ei yhdistetä: Queuety käyttää ensimmäistä annettua suodatinta järjestyksessä `--job`, `--workflow`, `--handler`, `--event`, `--since`. `--job` ja `--workflow` palauttavat kaikki merkinnät vanhimmasta alkaen ja ohittavat arvon `--limit`. `--handler` ja `--event` palauttavat uusimmat merkinnät ensin. Jos suodatinta ei anneta, komento lukee viimeisten 24 tunnin tiedot. Tällainen kysely ja `--since` luettelevat merkinnät vanhimmasta alkaen, joten `--limit` säilyttää aikaikkunan vanhimmat merkinnät.

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

### Lokien tyhjentäminen

`LogCommand` määrittää alikomennon `purge` (`wp queuety log purge --older-than=<days>`), mutta WP-CLI rekisteröi `wp queuety log`-komennon yksittäisenä komentona, joten alikomentoa ei voi käyttää ja se aiheuttaa virheen "Too many positional arguments: purge" ([#11](https://github.com/inline0/queuety/issues/11)). Tyhjennä vanhat lokimerkinnät sen sijaan komennolla PHP:

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

## Webhook-komennot

### `wp queuety webhook add`

Rekisteröi tapahtumalle webhook URL.

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

| Vaihtoehto | Kuvaus |
|---|---|
| `<event>` | Tapahtuman nimi: `job.completed`, `job.failed`, `job.buried` tai `workflow.failed` (pakollinen) |
| `<url>` | URL, johon ilmoitukset lähetetään POST-pyynnöllä (pakollinen) |

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

### `wp queuety webhook list`

Luettele kaikki rekisteröidyt webhookit.

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

| Valitsin | Kuvaus |
|---|---|
| `--format=<format>` | Tulostusmuoto: `table` (oletus), `json`, `csv`, `yaml` |

### `wp queuety webhook remove`

Poista webhook tunnisteen perusteella.

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

| Valitsin | Kuvaus |
|---|---|
| `<id>` | Poistettavan webhookin tunniste (pakollinen) |
