Darbplūsmas notikumu žurnāls
Darbplūsmas notikumu žurnālā tiek reģistrēta katra noturīgās darbplūsmas robežpunkta izsekošanas vēsture. Katrā izsekošanas notikumā var būt norādīta soļa ievade, izvade, publiskais stāvoklis pirms soļa, publiskais stāvoklis pēc soļa, izpildlaika konteksts, artefaktu atsauces, straumēšanas daļas, laiks un kļūdu informācija.
Kas tiek reģistrēts
| Notikums | Kad | Iegūtie dati |
|---|---|---|
step_started |
Pirms tiek palaists soļa apstrādātājs | Uzdevuma ID, rinda, mēģinājums, soļa nosaukums, soļa tips, ievade un stāvoklis pirms izpildes |
step_completed |
Pēc veiksmīgas soļa apstrādātāja izpildes | Ievade, izvade, stāvoklis pirms un pēc izpildes, konteksts, artefakti, daļas un ilgums |
step_failed |
Kad soļa apstrādātājs izmet izņēmumu | Ievade, stāvoklis pirms un pēc izpildes, ja pieejams, konteksts, kļūdas klase, kļūdas ziņojums, izsekošanas informācija un ilgums |
step_branch_completed |
Kad veiksmīgi izpildās viens paralēlais zars | Zara ievade, izvade, stāvoklis pirms un pēc izpildes, konteksts un ilgums |
step_item_completed |
Kad veiksmīgi izpildās viens for-each elements | Elementa ievade, izvade, stāvoklis pirms un pēc izpildes, elementa metadati, konteksts un ilgums |
workflow_waiting |
Kad gaidīšanas solis aptur izpildi | Gaidīšanas tips, gaidīšanas mērķi, gaidīšanas režīms, rezultāta atslēga, atbilstības metadati un gaidīšanas laikā saglabātais stāvoklis |
workflow_resumed |
Kad gaidīšanas nosacījums ir izpildīts | Atsākšanas dati, stāvoklis pirms atsākšanas un stāvoklis pēc atsākšanas |
workflow_replayed |
Kad eksportētais darbplūsmas eksemplārs tiek izveidots no jauna | Avota darbplūsmas metadati un atkārtotas izpildes stāvoklis |
Laika skalas vaicājumi
$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";
}
}
Katrā notikuma rindā ir:
idworkflow_idjob_idparent_event_idstep_indexstep_namestep_typehandlereventqueueattemptinputoutputstate_beforestate_aftercontextartifactschunkserrorduration_mscreated_at
Normalizēta izsekošanas kopa
Lietojiet workflow_trace(), veidojot atkļūdotāju UI:
$trace = Queuety::workflow_trace( $workflow_id );
Izsekošanas kopā ir:
workflowstepseventsjobslogsartifactschunkssignalswait_dependencies
steps sagrupē notikumus pēc soļa indeksa un iekļauj pēdējo svarīgo notikumu katram solim.
Soļa stāvokļa izgūšana
$state = Queuety::workflow_state_at( $workflow_id, $step_index );
Tas atgriež publisko state_after no pēdējā pabeigtā vai atsāktā notikuma šim solim vai null, ja stāvoklis nav reģistrēts.
Izpildlaika izsekošanas metadati
Apstrādātāji darbības laikā var pievienot izsekošanas informāciju par lietojumprogrammas līmeni:
Queuety::trace_input( [ 'resolved' => $resolved_input ] );
Queuety::trace_context( [ 'ability' => 'content/load-post' ] );
Queuety::trace_output( [ 'post' => $post ] );
Soļu apstrādātāji var arī atgriezt rezervētus izsekošanas metadatus:
return [
'result' => 'done',
'_queuety_trace' => [
'input' => [ 'resolved' => $resolved_input ],
'context' => [ 'node_id' => 'loadPost' ],
'artifacts' => [
[ 'key' => 'brief', 'kind' => 'markdown' ],
],
],
];
Atslēga _queuety_trace tiek saglabāta notikumu žurnālā un netiek apvienota ar darbplūsmas stāvokli.
CLI
Skatiet laika skalu tabulas veidā:
wp queuety workflow timeline 42
Skatiet stāvokli pēc soļa:
wp queuety workflow state-at 42 0
Saglabāšanas ilgums
Notikumu žurnāli laika gaitā uzkrājas. Izmantojiet prune(), lai dzēstu vecus izsekošanas notikumus:
$deleted = Queuety::workflow_events()->prune( 30 );