İş 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
$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:
idworkflow_idjob_idparent_event_idstep_indexstep_namestep_typehandlereventqueueattemptinputoutputstate_beforestate_aftercontextartifactschunkserrorduration_mscreated_at
Normalleştirilmiş iz paketi
Hata ayıklayıcı UI oluştururken workflow_trace() kullanın:
$trace = Queuety::workflow_trace( $workflow_id );
İz paketi şunları içerir:
workflowstepseventsjobslogsartifactschunkssignalswait_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
$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:
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:
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:
wp queuety workflow timeline 42
Bir adımdan sonraki durumu görüntüleyin:
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:
$deleted = Queuety::workflow_events()->prune( 30 );