Workflow-gebeurtenislog
De workflow-gebeurtenislog legt voor elke duurzame workflowgrens een trace vast. Elke tracegebeurtenis kan de stapinvoer, uitvoer, openbare status vóór de stap, openbare status na de stap, runtimecontext, verwijzingen naar artefacten, streamingchunks, timing en foutdetails bevatten.
Wat wordt vastgelegd
| Gebeurtenis | Wanneer | Vastgelegde gegevens |
|---|---|---|
step_started |
Voordat een staphandler wordt uitgevoerd | Taak-ID, wachtrij, poging, stapnaam, staptype, invoer en status vóór uitvoering |
step_completed |
Nadat een staphandler slaagt | Invoer, uitvoer, status ervoor, status erna, context, artefacten, chunks en duur |
step_failed |
Wanneer een staphandler een fout genereert | Invoer, status ervoor, status erna indien beschikbaar, context, foutklasse, foutbericht, trace en duur |
step_branch_completed |
Wanneer een parallelle tak slaagt | Takinvoer, uitvoer, status ervoor, status erna, context en duur |
step_item_completed |
Wanneer een for-each-item slaagt | Iteminvoer, uitvoer, status ervoor, status erna, itemmetadata, context en duur |
workflow_waiting |
Wanneer een wachtstap de uitvoering parkeert | Wachttype, wachtdoelen, wachtmodus, resultaatsleutel, matchmetadata en status tijdens het wachten |
workflow_resumed |
Wanneer aan een wachtstap is voldaan | Hervattingspayload, status vóór hervatting en status na hervatting |
workflow_replayed |
Wanneer een export opnieuw wordt aangemaakt | Metagegevens van de bronworkflow en replaystatus |
De tijdlijn opvragen
$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";
}
}
Elke gebeurtenisrij bevat:
idworkflow_idjob_idparent_event_idstep_indexstep_namestep_typehandlereventqueueattemptinputoutputstate_beforestate_aftercontextartifactschunkserrorduration_mscreated_at
Genormaliseerde tracebundel
Gebruik workflow_trace() bij het bouwen van een debugger UI:
$trace = Queuety::workflow_trace( $workflow_id );
De tracebundel bevat:
workflowstepseventsjobslogsartifactschunkssignalswait_dependencies
steps groepeert gebeurtenissen op stapindex en bevat de meest recente belangrijke gebeurtenis voor elke stap.
Stapstatus opzoeken
$state = Queuety::workflow_state_at( $workflow_id, $step_index );
Dit retourneert de openbare state_after van de meest recente voltooide of hervatte gebeurtenis voor die stap, of null als er geen status is vastgelegd.
Metagegevens van runtime-traces
Handlers kunnen tijdens de uitvoering tracegegevens op applicatieniveau toevoegen:
Queuety::trace_input( [ 'resolved' => $resolved_input ] );
Queuety::trace_context( [ 'ability' => 'content/load-post' ] );
Queuety::trace_output( [ 'post' => $post ] );
Staphandlers kunnen ook gereserveerde tracemetagegevens retourneren:
return [
'result' => 'done',
'_queuety_trace' => [
'input' => [ 'resolved' => $resolved_input ],
'context' => [ 'node_id' => 'loadPost' ],
'artifacts' => [
[ 'key' => 'brief', 'kind' => 'markdown' ],
],
],
];
De sleutel _queuety_trace wordt opgeslagen in de gebeurtenislog en niet samengevoegd met de workflowstatus.
CLI
Bekijk de tijdlijn als tabel:
wp queuety workflow timeline 42
Bekijk de status na een stap:
wp queuety workflow state-at 42 0
Bewaartermijn
Gebeurtenislogs stapelen zich in de loop van de tijd op. Gebruik prune() om oude tracegebeurtenissen te verwijderen:
$deleted = Queuety::workflow_events()->prune( 30 );