Μετάβαση στο περιεχόμενο

Αρχείο συμβάντων ροής εργασίας

Το αρχείο συμβάντων της ροής εργασίας καταγράφει ένα ίχνος για κάθε διατηρήσιμο όριο της ροής. Κάθε συμβάν ίχνους μπορεί να περιλαμβάνει την είσοδο και την έξοδο του βήματος, τη δημόσια κατάσταση πριν και μετά το βήμα, το περιβάλλον εκτέλεσης, αναφορές τεχνουργημάτων, τμήματα ροής, χρονικά στοιχεία και λεπτομέρειες σφάλματος.

Τι καταγράφεται

Συμβάν Πότε Καταγεγραμμένα δεδομένα
step_started Πριν εκτελεστεί ο χειριστής βήματος Αναγνωριστικό εργασίας, ουρά, προσπάθεια, όνομα βήματος, τύπος βήματος, είσοδος και κατάσταση πριν από την εκτέλεση
step_completed Μετά την επιτυχή εκτέλεση του χειριστή βήματος Είσοδος, έξοδος, κατάσταση πριν, κατάσταση μετά, περιβάλλον, τεχνουργήματα, τμήματα και διάρκεια
step_failed Όταν ο χειριστής βήματος προκαλέσει εξαίρεση Είσοδος, κατάσταση πριν, κατάσταση μετά όταν είναι διαθέσιμη, περιβάλλον, κλάση σφάλματος, μήνυμα σφάλματος, ίχνος και διάρκεια
step_branch_completed Όταν ένας παράλληλος κλάδος ολοκληρωθεί επιτυχώς Είσοδος κλάδου, έξοδος, κατάσταση πριν, κατάσταση μετά, περιβάλλον και διάρκεια
step_item_completed Όταν ένα στοιχείο επανάληψης ολοκληρωθεί επιτυχώς Είσοδος στοιχείου, έξοδος, κατάσταση πριν, κατάσταση μετά, μεταδεδομένα στοιχείου, περιβάλλον και διάρκεια
workflow_waiting Όταν ένα βήμα αναμονής θέτει σε αναμονή την εκτέλεση Τύπος αναμονής, στόχοι αναμονής, λειτουργία αναμονής, κλειδί αποτελέσματος, μεταδεδομένα αντιστοίχισης και κατάσταση κατά την αναμονή
workflow_resumed Όταν ικανοποιηθεί ένα βήμα αναμονής Ωφέλιμο φορτίο συνέχισης, κατάσταση πριν από τη συνέχιση και κατάσταση μετά τη συνέχιση
workflow_replayed Όταν αναδημιουργείται μια εξαγωγή Μεταδεδομένα πηγαίας ροής εργασίας και κατάσταση επανάληψης

Αναζήτηση στο χρονολόγιο

PHP
$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";
    }
}

Κάθε γραμμή συμβάντος περιέχει:

  • id
  • workflow_id
  • job_id
  • parent_event_id
  • step_index
  • step_name
  • step_type
  • handler
  • event
  • queue
  • attempt
  • input
  • output
  • state_before
  • state_after
  • context
  • artifacts
  • chunks
  • error
  • duration_ms
  • created_at

Κανονικοποιημένο σύνολο ιχνών

Χρησιμοποιήστε το workflow_trace() κατά τη δημιουργία ενός εργαλείου εντοπισμού σφαλμάτων UI:

PHP
$trace = Queuety::workflow_trace( $workflow_id );

Το σύνολο ιχνών περιλαμβάνει:

  • workflow
  • steps
  • events
  • jobs
  • logs
  • artifacts
  • chunks
  • signals
  • wait_dependencies

Το steps ομαδοποιεί τα συμβάντα ανά ευρετήριο βήματος και περιλαμβάνει το πιο πρόσφατο σημαντικό συμβάν για κάθε βήμα.

Αναζήτηση κατάστασης βήματος

PHP
$state = Queuety::workflow_state_at( $workflow_id, $step_index );

Αυτό επιστρέφει τη δημόσια κατάσταση state_after από το πιο πρόσφατο ολοκληρωμένο ή συνεχιζόμενο συμβάν για το συγκεκριμένο βήμα ή το null αν δεν καταγράφηκε κατάσταση.

Μεταδεδομένα ιχνών εκτέλεσης

Οι χειριστές μπορούν να προσθέτουν λεπτομέρειες ιχνών σε επίπεδο εφαρμογής κατά την εκτέλεσή τους:

PHP
Queuety::trace_input( [ 'resolved' => $resolved_input ] );
Queuety::trace_context( [ 'ability' => 'content/load-post' ] );
Queuety::trace_output( [ 'post' => $post ] );

Οι χειριστές βημάτων μπορούν επίσης να επιστρέφουν δεσμευμένα μεταδεδομένα ιχνών:

PHP
return [
    'result' => 'done',
    '_queuety_trace' => [
        'input' => [ 'resolved' => $resolved_input ],
        'context' => [ 'node_id' => 'loadPost' ],
        'artifacts' => [
            [ 'key' => 'brief', 'kind' => 'markdown' ],
        ],
    ],
];

Το κλειδί _queuety_trace αποθηκεύεται στο αρχείο συμβάντων και δεν συγχωνεύεται με την κατάσταση της ροής εργασίας.

CLI

Δείτε το χρονολόγιο ως πίνακα:

Κέλυφος
wp queuety workflow timeline 42

Δείτε την κατάσταση μετά από ένα βήμα:

Κέλυφος
wp queuety workflow state-at 42 0

Διατήρηση

Τα αρχεία συμβάντων συσσωρεύονται με τον καιρό. Χρησιμοποιήστε το prune() για να διαγράψετε παλιά συμβάντα ιχνών:

PHP
$deleted = Queuety::workflow_events()->prune( 30 );