İçeriğe geç

İş Akışı Olay Günlüğü

İş akışı olay günlüğü, kalıcı iş akışı sınırlarının her biri için bir iz kaydı tutar. Her iz olayı; adım girdisini, çıktısını, adım öncesindeki genel durumu, adım sonrasındaki genel durumu, çalışma zamanı bağlamını, yapıt başvurularını, akış parçalarını, zamanlamayı ve hata ayrıntılarını içerebilir.

Kaydedilenler

Olay Zaman Kaydedilen veriler
step_started Adım işleyicisi çalışmadan önce İş kimliği, kuyruk, deneme, ad adı, adım türü, girdi ve yürütme öncesi durum
step_completed Adım işleyicisi başarıyla çalıştıktan sonra Girdi, çıktı, önceki durum, sonraki durum, bağlam, yapıtlar, parçalar ve süre
step_failed Adım işleyicisi hata fırlattığında Girdi, önceki durum, varsa sonraki durum, bağlam, hata sınıfı, hata mesajı, iz ve süre
step_branch_completed Paralel dallardan biri başarılı olduğunda Dal girdisi, çıktısı, önceki durum, sonraki durum, bağlam ve süre
step_item_completed Her öğe döngüsündeki bir öğe başarılı olduğunda Öğe girdisi, çıktısı, önceki durum, sonraki durum, öğe meta verileri, bağlam ve süre
workflow_waiting Bir bekleme adımı çalışmayı beklemeye aldığında Bekleme türü, bekleme hedefleri, bekleme modu, sonuç anahtarı, eşleşme meta verileri ve bekleme sırasındaki durum
workflow_resumed Bir bekleme adımı karşılandığında Devam yükü, devam öncesi durum ve devam sonrası durum
workflow_replayed Bir dışa aktarım yeniden oluşturulduğunda Kaynak iş akışı meta verileri ve yeniden oynatma durumu

Zaman çizelgesini sorgulama

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

Her olay satırı şunları içerir:

  • 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

Normalleştirilmiş iz paketi

Hata ayıklayıcı UI oluştururken workflow_trace() kullanın:

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

İz paketi şunları içerir:

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

steps olayları adım dizinine göre gruplandırır ve her adım için en son önemli olayı içerir.

Adım durumu arama

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

Bu, o adım için en son tamamlanan veya devam ettirilen olayın genel state_after değerini, herhangi bir durum kaydedilmemişse null değerini döndürür.

Çalışma zamanı iz meta verileri

İşleyiciler çalışırken uygulama düzeyinde iz ayrıntıları ekleyebilir:

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

Adım işleyicileri ayrılmış iz meta verilerini de döndürebilir:

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

_queuety_trace anahtarı olay günlüğünde saklanır ve iş akışı durumuyla birleştirilmez.

CLI

Zaman çizelgesini tablo olarak görüntüleyin:

Kabuk
wp queuety workflow timeline 42

Bir adımdan sonraki durumu görüntüleyin:

Kabuk
wp queuety workflow state-at 42 0

Saklama süresi

Olay günlükleri zamanla birikir. Eski iz olaylarını silmek için prune() kullanın:

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