Työnkulun tapahtumaloki
Työnkulun tapahtumaloki tallentaa jäljen jokaisesta pysyvästä työnkulun rajakohdasta. Kukin jälkitapahtuma voi sisältää vaiheen syötteen ja tulosteen, julkisen tilan ennen vaihetta ja sen jälkeen, ajonaikaisen kontekstin, artefaktiviitteet, suoratoistopalat, ajoitustiedot ja virheen tiedot.
Tallennettavat tiedot
| Tapahtuma | Ajankohta | Tallennetut tiedot |
|---|---|---|
step_started |
Ennen vaiheenkäsittelijän suorittamista | Työn tunnus, jono, yritys, vaiheen nimi, vaiheen tyyppi, syöte ja tila ennen suorittamista |
step_completed |
Kun vaiheenkäsittelijä onnistuu | Syöte, tuloste, tila ennen ja jälkeen, konteksti, artefaktit, palat ja kesto |
step_failed |
Kun vaiheenkäsittelijä heittää poikkeuksen | Syöte, tila ennen ja jälkeen, jos saatavilla, konteksti, virheluokka, virheilmoitus, jälki ja kesto |
step_branch_completed |
Kun rinnakkaishaara onnistuu | Haaran syöte ja tuloste, tila ennen ja jälkeen, konteksti ja kesto |
step_item_completed |
Kun for-each-kohde onnistuu | Kohteen syöte ja tuloste, tila ennen ja jälkeen, kohteen metatiedot, konteksti ja kesto |
workflow_waiting |
Kun odotusvaihe pysäyttää suorituksen | Odotuksen tyyppi, kohteet, tila, tulosavain, täsmäytyksen metatiedot ja tila odotuksen aikana |
workflow_resumed |
Kun odotusvaiheen ehto täyttyy | Jatkamisen hyötykuorma, tila ennen jatkamista ja tila jatkamisen jälkeen |
workflow_replayed |
Kun vienti luodaan uudelleen | Lähdetyönkulun metatiedot ja toistotila |
Aikajanan kyselyt
$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";
}
}
Jokainen tapahtumarivi sisältää:
idworkflow_idjob_idparent_event_idstep_indexstep_namestep_typehandlereventqueueattemptinputoutputstate_beforestate_aftercontextartifactschunkserrorduration_mscreated_at
Normalisoitu jälkipaketti
Käytä workflow_trace()-toimintoa, kun rakennat virheenjäljittäjän UI:
$trace = Queuety::workflow_trace( $workflow_id );
Jälkipaketti sisältää:
workflowstepseventsjobslogsartifactschunkssignalswait_dependencies
steps ryhmittelee tapahtumat vaiheen indeksin mukaan ja sisällyttää kunkin vaiheen viimeisimmän tärkeän tapahtuman.
Vaiheen tilan haku
$state = Queuety::workflow_state_at( $workflow_id, $step_index );
Tämä palauttaa vaiheen viimeisimmän valmistuneen tai jatketun tapahtuman julkisen state_after-tilan tai arvon null, jos tilaa ei tallennettu.
Ajonaikaisen jäljen metatiedot
Käsittelijät voivat lisätä sovellustason jälkitietoja suorituksensa aikana:
Queuety::trace_input( [ 'resolved' => $resolved_input ] );
Queuety::trace_context( [ 'ability' => 'content/load-post' ] );
Queuety::trace_output( [ 'post' => $post ] );
Vaiheenkäsittelijät voivat myös palauttaa varattuja jäljen metatietoja:
return [
'result' => 'done',
'_queuety_trace' => [
'input' => [ 'resolved' => $resolved_input ],
'context' => [ 'node_id' => 'loadPost' ],
'artifacts' => [
[ 'key' => 'brief', 'kind' => 'markdown' ],
],
],
];
_queuety_trace-avain tallennetaan tapahtumalokiin, eikä sitä yhdistetä työnkulun tilaan.
CLI
Näytä aikajana taulukkona:
wp queuety workflow timeline 42
Näytä vaiheen jälkeinen tila:
wp queuety workflow state-at 42 0
Säilytys
Tapahtumalokeja kertyy ajan mittaan. Poista vanhoja jälkitapahtumia käyttämällä toimintoa prune():
$deleted = Queuety::workflow_events()->prune( 30 );