Pereiti prie turinio

Darbo eigos įvykių žurnalas

Darbo eigos įvykių žurnale įrašomi pėdsakai ties kiekviena patvarios darbo eigos riba. Kiekviename pėdsako įvykyje gali būti žingsnio įvestis, išvestis, vieša būsena prieš žingsnį ir po jo, vykdymo kontekstas, artefaktų nuorodos, srauto dalys, laikas ir išsami klaidos informacija.

Kas įrašoma

Įvykis Kada Užfiksuojami duomenys
step_started Prieš paleidžiant žingsnio apdorojimo funkciją Užduoties ID, eilė, bandymas, žingsnio pavadinimas, žingsnio tipas, įvestis ir būsena prieš vykdymą
step_completed Sėkmingai įvykdžius žingsnio apdorojimo funkciją Įvestis, išvestis, būsena prieš ir po, kontekstas, artefaktai, dalys ir trukmė
step_failed Žingsnio apdorojimo funkcijai sukėlus išimtį Įvestis, būsena prieš ir po (jei prieinama), kontekstas, klaidos klasė, klaidos pranešimas, pėdsakas ir trukmė
step_branch_completed Sėkmingai užbaigus vieną lygiagrečią šaką Šakos įvestis, išvestis, būsena prieš ir po, kontekstas ir trukmė
step_item_completed Sėkmingai apdorojus vieną „for-each“ elementą Elemento įvestis, išvestis, būsena prieš ir po, elemento metaduomenys, kontekstas ir trukmė
workflow_waiting Laukimo žingsniui sustabdžius vykdymą Laukimo tipas, laukiami objektai, laukimo režimas, rezultato raktas, atitikties metaduomenys ir laukimo būsena
workflow_resumed Patenkinus laukimo žingsnio sąlygą Tęsimo duomenys, būsena prieš tęsiant ir po to
workflow_replayed Iš naujo sukūrus eksportą Pradinės darbo eigos metaduomenys ir atkūrimo būsena

Laiko juostos užklausos

PHP
$events = Queuety::workflow_timeline( $workflow_id );

foreach ( $events as $event ) {
    echo $event['step_index'] . ' ' . $event['event'] . ' ' . $event['handler'] . "\n";

    if ( 'step_completed' === $event['event'] ) {
        $input        = $event['input'];
        $output       = $event['output'];
        $state_before = $event['state_before'];
        $state_after  = $event['state_after'];
    }

    if ( 'step_failed' === $event['event'] ) {
        echo 'Error: ' . $event['error']['message'] . "\n";
    }
}

Kiekvienoje įvykio eilutėje yra:

  • id
  • workflow_id
  • job_id
  • parent_event_id
  • step_index
  • step_name
  • step_type
  • handler
  • event
  • queue
  • attempt
  • input
  • output
  • state_before
  • state_after
  • context
  • artifacts
  • chunks
  • error
  • duration_ms
  • created_at

Normalizuotas pėdsakų paketas

Naudokite workflow_trace() kurdami derintuvo UI:

PHP
$trace = Queuety::workflow_trace( $workflow_id );

Pėdsakų pakete yra:

  • workflow
  • steps
  • events
  • jobs
  • logs
  • artifacts
  • chunks
  • signals
  • wait_dependencies

steps sugrupuoja įvykius pagal žingsnio indeksą ir pateikia naujausią svarbų kiekvieno žingsnio įvykį.

Žingsnio būsenos paieška

PHP
$state = Queuety::workflow_state_at( $workflow_id, $step_index );

Grąžinama vieša būsena state_after iš naujausio užbaigto arba atnaujinto to žingsnio įvykio, o jei būsena nebuvo įrašyta, grąžinama null.

Vykdymo pėdsako metaduomenys

Apdorojimo funkcijos vykdymo metu gali pridėti programos lygmens pėdsako informaciją:

PHP
Queuety::trace_input( [ 'resolved' => $resolved_input ] );
Queuety::trace_context( [ 'ability' => 'content/load-post' ] );
Queuety::trace_output( [ 'post' => $post ] );

Žingsnių apdorojimo funkcijos taip pat gali grąžinti rezervuotus pėdsako metaduomenis:

PHP
return [
    'result' => 'done',
    '_queuety_trace' => [
        'input' => [ 'resolved' => $resolved_input ],
        'context' => [ 'node_id' => 'loadPost' ],
        'artifacts' => [
            [ 'key' => 'brief', 'kind' => 'markdown' ],
        ],
    ],
];

Raktas _queuety_trace įrašomas į įvykių žurnalą ir nesujungiamas su darbo eigos būsena.

CLI

Peržiūrėkite laiko juostą kaip lentelę:

Shell
wp queuety workflow timeline 42

Peržiūrėkite būseną po žingsnio:

Shell
wp queuety workflow state-at 42 0

Saugojimo laikotarpis

Įvykių žurnalai laikui bėgant didėja. Naudokite prune() seniems pėdsakų įvykiams ištrinti:

PHP
$deleted = Queuety::workflow_events()->prune( 30 );