
# Referință pentru CLI

Toate operațiile Queuety sunt disponibile implicit prin WP-CLI, în spațiul de nume `wp queuety`.

Definiți `QUEUETY_CLI_COMMAND` înainte de pornirea lui Queuety dacă doriți să publicați același arbore de comenzi sub o altă rădăcină, precum `wp themequeue`.

Pentru mediile de testare pentru agenți și alte integrări virtual-bash, folosiți această pagină ca referință pentru oameni și puntea PHP drept contract pentru mașini:

- `Queuety::cli_command_map()` expune catalogul de comenzi serializabil
- `Queuety::resolve_cli_command( $path, $args, $assoc_args )` transformă intrarea analizată `wp queuety ...` într-un plan de execuție normalizat, care preferă funcțiile apelabile directe PHP

Mașinile de stare nu au comenzi în acest arbore; inspectați-le prin PHP API descrise în [Mașini de stare](https://queuety.inline0.dev/ro/docs/state-machines).

## Comenzi pentru sarcini

### `wp queuety work`

Pornește un lucrător care procesează sarcini.

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

| Opțiune | Descriere |
|---|---|
| `--queue=<queue>` | Queue(s) de procesat, separate prin virgule pentru ordonarea priorităților (implicit: `default`) |
| `--once` | Procesează cel mult o sarcină și iese (iese și imediat dacă nu există nicio sarcină care poate fi preluată) |
| `--workers=<n>` | Creează N procese lucrător (necesită extensiile `pcntl` și `posix`, la fel ca `--min-workers` și `--max-workers`) |
| `--min-workers=<n>` | Numărul minim de lucrători pentru un grup adaptiv. Necesită `--max-workers` |
| `--max-workers=<n>` | Numărul maxim de lucrători pentru un grup adaptiv |

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

Când sunt specificate mai multe cozi, lucrătorul încearcă să preia sarcini din fiecare coadă în ordinea listată. Câștigă prima coadă cu o sarcină disponibilă. `--workers` menține grupul la o dimensiune fixă. `--min-workers` și `--max-workers` activează scalarea adaptivă pentru aceeași interfață de comenzi. Consultați [Lucrători](https://queuety.inline0.dev/ro/docs/features/workers) pentru strategii de implementare și [Gestionarea resurselor](https://queuety.inline0.dev/ro/docs/features/resource-management) pentru modelul de admitere folosit de grupurile adaptive.

### `wp queuety flush`

Procesează toate sarcinile în așteptare și iese.

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

| Opțiune | Descriere |
|---|---|
| `--queue=<queue>` | Queue(s) de golit, separate prin virgule pentru ordonarea priorităților (implicit: `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`

Expediază o sarcină din linia de comandă.

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

| Opțiune | Descriere |
|---|---|
| `<handler>` | Numele sau clasa gestionarului (obligatoriu) |
| `--payload=<json>` | Payload JSON (implicit: `{}`) |
| `--queue=<queue>` | Numele cozii (implicit: `default`) |
| `--priority=<priority>` | Nivel de prioritate 0-3 (implicit: `0`) |
| `--delay=<seconds>` | Întârziere în secunde (implicit: `0`) |

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

### `wp queuety status`

Afișează statisticile cozii.

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

| Opțiune | Descriere |
|---|---|
| `--queue=<queue>` | Filtrează după numele cozii |

### `wp queuety list`

Listează sarcinile.

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

| Opțiune | Descriere |
|---|---|
| `--queue=<queue>` | Filtrează după coadă |
| `--status=<status>` | Filtrează după stare (`pending`, `processing`, `completed`, `failed`, `buried`) |
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

### `wp queuety inspect`

Afișează toate detaliile unei sarcini, inclusiv payloadul și istoricul jurnalului.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul sarcinii (obligatoriu) |

### `wp queuety retry`

Reîncearcă o anumită sarcină.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul sarcinii pentru reîncercare (obligatoriu) |

### `wp queuety retry-buried`

Reîncearcă toate sarcinile îngropate.

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

### `wp queuety bury`

Îngroapă manual o sarcină.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul sarcinii de îngropat (obligatoriu) |

### `wp queuety delete`

Șterge o sarcină.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul sarcinii de șters (obligatoriu) |

### `wp queuety recover`

Recuperează sarcinile învechite blocate în starea `processing`.

```bash
wp queuety recover
```

### `wp queuety purge`

Elimină sarcinile finalizate.

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

| Opțiune | Descriere |
|---|---|
| `--older-than=<days>` | Șterge sarcinile mai vechi de N zile (implicit: `QUEUETY_RETENTION_DAYS`) |

### `wp queuety pause`

Pune o coadă în pauză, astfel încât workerii să o ignore.

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

| Opțiune | Descriere |
|---|---|
| `<queue>` | Numele cozii de pus în pauză (obligatoriu) |

### `wp queuety resume`

Reia o coadă aflată în pauză.

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

| Opțiune | Descriere |
|---|---|
| `<queue>` | Numele cozii de reluat (obligatoriu) |

### `wp queuety metrics`

Afișează valorile măsurate pentru fiecare gestionar.

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

| Opțiune | Descriere |
|---|---|
| `--minutes=<minutes>` | Interval de timp în minute (implicit: `60`) |
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

### `wp queuety discover`

Descoperă clasele de gestionare dintr-un director.

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

| Opțiune | Descriere |
|---|---|
| `<directory>` | Directorul în care se caută clasele de gestionare (obligatoriu) |
| `<namespace>` | Prefixul de spațiu de nume PSR-4 pentru director (obligatoriu) |
| `--register` | Înregistrează efectiv gestionarii descoperiți |

## Comenzi pentru fluxuri de lucru

### `wp queuety workflow status`

Afișează starea și progresul fluxului de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |

`status` afișează pasul curent, numele opțional al pasului, metadatele versiunii/hashului, modul de așteptare, rezumatul artefactelor și un blob `WaitInfo` JSON dacă fluxul de lucru este blocat în acel moment în așteptarea unor semnale sau dependențe.

### `wp queuety workflow list`

Listează fluxurile de lucru.

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

| Opțiune | Descriere |
|---|---|
| `--status=<status>` | Filtrează după stare: `running`, `completed`, `failed`, `paused`, `waiting_for_signal`, `waiting_for_workflows`, `cancelled` |
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

Comanda returnează cel mult 50 de fluxuri de lucru. Citește o valoare `--limit`, dar WP-CLI respinge în prezent indicatorul deoarece comanda nu îl declară ([#12](https://github.com/inline0/queuety/issues/12)); folosiți `Queuety::list_workflows()` pentru a seta o limită diferită.

Tabelul implicit include `StepName` și `WaitMode` pentru ca fluxurile de lucru blocate să fie mai ușor de identificat dintr-o privire.

### `wp queuety workflow retry`

Reia un flux de lucru eșuat de la pasul la care a eșuat.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |

### `wp queuety workflow approve`

Trimite un semnal de aprobare unui flux de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `--data=<json>` | Payload opțional de tip obiect JSON |
| `--signal=<name>` | Suprascrie numele semnalului de aprobare (implicit: `approval`, care corespunde lui `wait_for_approval()`; un pas `wait_for_decision()` ascultă implicit după `approved`, deci transmiteți `--signal=approved` acolo) |

### `wp queuety workflow reject`

Trimite un semnal de respingere unui flux de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `--data=<json>` | Payload opțional de tip obiect JSON |
| `--signal=<name>` | Suprascrie numele semnalului de respingere (implicit: `rejected`) |

### `wp queuety workflow input`

Trimite date structurate unui flux de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `--data=<json>` | Payload opțional de tip obiect JSON |
| `--signal=<name>` | Suprascrie numele semnalului de intrare (implicit: `input`) |

### `wp queuety workflow artifacts`

Listează artefactele stocate pentru un flux de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `--format=<format>` | Format de ieșire: `table` (implicit) sau `json` |
| `--with-content` | Include conținutul artefactelor în ieșire |

### `wp queuety workflow artifact`

Afișează un artefact stocat pentru un flux de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `<key>` | Cheia artefactului (obligatoriu) |

### `wp queuety workflow pause`

Pune în pauză un flux de lucru în curs de rulare.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |

### `wp queuety workflow resume`

Reia un flux de lucru pus pe pauză.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |

### `wp queuety workflow cancel`

Anulează un flux de lucru care nu se află deja în starea `completed` sau `cancelled`. Într-o singură tranzacție, Queuety setează starea la `cancelled`, îngroapă sarcinile în așteptare și în curs de procesare ale fluxului de lucru și înregistrează în jurnal `workflow_cancelled`; apoi execută compensările și orice gestionar de curățare înregistrat.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru de anulat (obligatoriu) |

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

### `wp queuety workflow timeline`

Afișează cronologia evenimentelor unui flux de lucru. Afișează toate evenimentele pașilor (început, finalizat, eșuat), cu marcaje temporale, gestionari și durate.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `--limit=<limit>` | Numărul maxim de evenimente returnate (implicit: `100`) |
| `--offset=<offset>` | Numărul de evenimente anterioare de omis (implicit: `0`) |
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

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

Coloane de ieșire: `ID`, `Step`, `Event`, `Handler`, `Duration_ms`, `Error`, `Created_at`.

### `wp queuety workflow state-at`

Afișează starea publică a fluxului de lucru după ce un anumit pas al acestuia s-a finalizat sau a fost reluat.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `<step>` | Indexul pasului, numerotat de la 0 (obligatoriu) |

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

Consultați [Jurnalul de evenimente al fluxului de lucru](https://queuety.inline0.dev/ro/docs/workflows/event-log) pentru detalii despre ce se înregistrează și despre cazurile de utilizare.

### `wp queuety workflow rewind`

Revine la un pas anterior al fluxului de lucru și continuă de la pasul următor. Starea este restaurată din jurnalul de evenimente `state_after` pentru pasul indicat, iar pasul următor (`<step> + 1`) este pus în coadă; pasul indicat nu este executat din nou.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `<step>` | Indexul pasului la care se revine, numerotat de la 0 (obligatoriu) |

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

Consultați [Călătorie în timp](https://queuety.inline0.dev/ro/docs/workflows/time-travel) pentru detalii.

### `wp queuety workflow fork`

Creează o bifurcație a unui flux de lucru în curs, sub forma unei copii independente în starea sa curentă. Fluxul bifurcat primește un ID nou și continuă independent.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru de bifurcat (obligatoriu) |

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

Consultați [Bifurcare](https://queuety.inline0.dev/ro/docs/workflows/forking) pentru detalii.

### `wp queuety workflow export`

Exportă istoricul complet de execuție al unui flux de lucru în JSON. Include rândul fluxului de lucru, sarcinile, evenimentele fluxului, înregistrările din jurnal, semnalele stocate și așteptările după dependențele fluxului de lucru.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul fluxului de lucru (obligatoriu) |
| `--output=<file>` | Calea fișierului în care se scrie JSON. Implicit, rezultatul este trimis la ieșirea standard. |

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

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

Consultați [Exportare și redare](https://queuety.inline0.dev/ro/docs/workflows/export-replay) pentru detalii despre structura JSON.

### `wp queuety workflow replay`

Redă un flux de lucru exportat dintr-un fișier JSON. Creează un flux de lucru nou cu starea, metadatele și cronologia istorică exportate.

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

| Opțiune | Descriere |
|---|---|
| `<file>` | Calea către fișierul JSON exportat (obligatoriu) |

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

Consultați [Export și reluare](https://queuety.inline0.dev/ro/docs/workflows/export-replay) pentru detalii.

## Comenzi pentru programări

### `wp queuety schedule list`

Listează toate programările recurente.

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

| Opțiune | Descriere |
|---|---|
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

### `wp queuety schedule add`

Adaugă o programare recurentă.

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

| Opțiune | Descriere |
|---|---|
| `<handler>` | Numele sau clasa gestionarului (obligatoriu) |
| `--every=<interval>` | Expresia intervalului (e.g. `1 hour`, `30 minutes`) |
| `--cron=<expression>` | Expresia Cron (e.g. `0 3 * * *`) |
| `--payload=<json>` | Payload JSON (implicit: `{}`) |
| `--queue=<queue>` | Numele cozii (implicit: `default`) |

Trebuie să specificați fie `--every`, fie `--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`

Elimină o programare după numele gestionarului.

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

| Opțiune | Descriere |
|---|---|
| `<handler>` | Numele gestionarului de eliminat (obligatoriu) |

### `wp queuety schedule run`

Declanșează manual o execuție a programatorului. Pune în coadă sarcini pentru toate programările scadente.

```bash
wp queuety schedule run
```

## Comenzi pentru jurnale

### `wp queuety log`

Interoghează intrările din jurnal.

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

| Opțiune | Descriere |
|---|---|
| `--job=<id>` | Filtrează după ID-ul sarcinii |
| `--workflow=<id>` | Filtrează după ID-ul fluxului de lucru |
| `--handler=<name>` | Filtrează după numele gestionarului |
| `--event=<event>` | Filtrează după tipul evenimentului (`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>` | Afișează intrările începând de la această dată și oră |
| `--limit=<n>` | Numărul maxim de intrări afișate (implicit: `50`) |
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

Filtrele nu se combină: Queuety îl aplică pe primul prezent, în ordinea `--job`, `--workflow`, `--handler`, `--event`, `--since`. `--job` și `--workflow` returnează toate intrările, de la cele mai vechi la cele mai noi, și ignoră `--limit`. `--handler` și `--event` returnează mai întâi cele mai noi intrări. Fără filtru, comanda citește ultimele 24 de ore; interogarea respectivă și `--since` listează intrările de la cele mai vechi la cele mai noi, așa că `--limit` păstrează cele mai vechi intrări din interval.

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

### Ștergerea jurnalelor

`LogCommand` definește o subcomandă `purge` (`wp queuety log purge --older-than=<days>`), dar WP-CLI înregistrează `wp queuety log` ca o singură comandă, astfel că subcomanda nu poate fi apelată și eșuează cu „Too many positional arguments: purge” ([#11](https://github.com/inline0/queuety/issues/11)). În schimb, ștergeți intrările vechi din jurnal folosind PHP:

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

## Comenzi pentru webhookuri

### `wp queuety webhook add`

Înregistrați un webhook URL pentru un eveniment.

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

| Opțiune | Descriere |
|---|---|
| `<event>` | Numele evenimentului: `job.completed`, `job.failed`, `job.buried` sau `workflow.failed` (obligatoriu) |
| `<url>` | URL la care se trimit notificările prin POST (obligatoriu) |

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

### `wp queuety webhook list`

Listează toate webhookurile înregistrate.

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

| Opțiune | Descriere |
|---|---|
| `--format=<format>` | Format de ieșire: `table` (implicit), `json`, `csv`, `yaml` |

### `wp queuety webhook remove`

Eliminați un webhook după ID.

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

| Opțiune | Descriere |
|---|---|
| `<id>` | ID-ul webhookului de eliminat (obligatoriu) |
