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
$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:
idworkflow_idjob_idparent_event_idstep_indexstep_namestep_typehandlereventqueueattemptinputoutputstate_beforestate_aftercontextartifactschunkserrorduration_mscreated_at
Normalizuotas pėdsakų paketas
Naudokite workflow_trace() kurdami derintuvo UI:
$trace = Queuety::workflow_trace( $workflow_id );
Pėdsakų pakete yra:
workflowstepseventsjobslogsartifactschunkssignalswait_dependencies
steps sugrupuoja įvykius pagal žingsnio indeksą ir pateikia naujausią svarbų kiekvieno žingsnio įvykį.
Žingsnio būsenos paieška
$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ą:
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:
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ę:
wp queuety workflow timeline 42
Peržiūrėkite būseną po žingsnio:
wp queuety workflow state-at 42 0
Saugojimo laikotarpis
Įvykių žurnalai laikui bėgant didėja. Naudokite prune() seniems pėdsakų įvykiams ištrinti:
$deleted = Queuety::workflow_events()->prune( 30 );