Munkafolyamat-eseménynapló
A munkafolyamat-eseménynapló minden tartós munkafolyamat-határhoz nyomvonalat rögzít. Minden nyomvonal-esemény tartalmazhatja a lépés bemenetét és kimenetét, a nyilvános állapotot a lépés előtt és után, a futásidejű környezetet, a mellékletekre mutató hivatkozásokat, az adatfolyam darabjait, az időzítést és a hiba részleteit.
Mit rögzít a napló
| Esemény | Mikor | Rögzített adatok |
|---|---|---|
step_started |
Egy lépés kezelőjének futása előtt | Feladat-azonosító, sor, próbálkozás, lépés neve, típusa, bemenete és végrehajtás előtti állapot |
step_completed |
Egy lépés kezelőjének sikeres futása után | Bemenet, kimenet, előtte lévő állapot, utána lévő állapot, környezet, mellékletek, adatdarabok és időtartam |
step_failed |
Ha egy lépéskezelő kivételt dob | Bemenet, előtte lévő állapot, utána lévő állapot, ha elérhető, környezet, hibaosztály, hibaüzenet, nyomvonal és időtartam |
step_branch_completed |
Ha egy párhuzamos ág sikeres | Ágbemenet, kimenet, előtte lévő állapot, utána lévő állapot, környezet és időtartam |
step_item_completed |
Ha egy for-each elem sikeres | Elembemenet, kimenet, előtte lévő állapot, utána lévő állapot, elem-metaadatok, környezet és időtartam |
workflow_waiting |
Ha egy várakozási lépés felfüggeszti a futást | Várakozás típusa, célpontjai, módja, eredménykulcs, egyezési metaadatok és a várakozás alatti állapot |
workflow_resumed |
Ha egy várakozási lépés teljesül | Folytatási adat, folytatás előtti állapot és folytatás utáni állapot |
workflow_replayed |
Ha egy exportot újra létrehoznak | Forrás-munkafolyamat metaadatai és visszajátszási állapot |
Az idővonal lekérdezése
$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";
}
}
Minden eseménysor a következőket tartalmazza:
idworkflow_idjob_idparent_event_idstep_indexstep_namestep_typehandlereventqueueattemptinputoutputstate_beforestate_aftercontextartifactschunkserrorduration_mscreated_at
Normalizált nyomvonalcsomag
Használja a workflow_trace() elemet hibakereső UI létrehozásakor:
$trace = Queuety::workflow_trace( $workflow_id );
A nyomvonalcsomag a következőket tartalmazza:
workflowstepseventsjobslogsartifactschunkssignalswait_dependencies
A steps lépésindex szerint csoportosítja az eseményeket, és minden lépéshez tartalmazza a legutóbbi fontos eseményt.
Lépésállapot lekérése
$state = Queuety::workflow_state_at( $workflow_id, $step_index );
Ez az adott lépés legutóbbi befejezett vagy folytatott eseményének nyilvános state_after állapotát adja vissza, vagy null értéket, ha nem rögzítettek állapotot.
Futásidejű nyomvonal-metaadatok
A kezelők futás közben alkalmazásszintű nyomvonalrészleteket adhatnak hozzá:
Queuety::trace_input( [ 'resolved' => $resolved_input ] );
Queuety::trace_context( [ 'ability' => 'content/load-post' ] );
Queuety::trace_output( [ 'post' => $post ] );
A lépéskezelők fenntartott nyomvonal-metaadatokat is visszaadhatnak:
return [
'result' => 'done',
'_queuety_trace' => [
'input' => [ 'resolved' => $resolved_input ],
'context' => [ 'node_id' => 'loadPost' ],
'artifacts' => [
[ 'key' => 'brief', 'kind' => 'markdown' ],
],
],
];
A _queuety_trace kulcs az eseménynaplóban tárolódik, és nem olvad össze a munkafolyamat állapotával.
CLI
Az idővonal megtekintése táblázatként:
wp queuety workflow timeline 42
Lépés utáni állapot megtekintése:
wp queuety workflow state-at 42 0
Megőrzés
Az eseménynaplók idővel felhalmozódnak. A régi nyomvonal-események törléséhez használja a prune() elemet:
$deleted = Queuety::workflow_events()->prune( 30 );