Työnkulun haarauttaminen
Queuety voi haarauttaa käynnissä olevan työnkulun täysin itsenäiseksi kopioksi. Haarautettu työnkulku alkaa samasta vaiheesta ja samassa tilassa kuin alkuperäinen, mutta työnkulut jatkavat tästä eteenpäin itsenäisesti. Toiseen tehdyt muutokset eivät vaikuta toiseen.
Työnkulun haarauttaminen
PHP API
Kutsu toimintoa Queuety::fork_workflow() työnkulun tunnuksella. Se palauttaa uuden työnkulun tunnuksen:
use Queuety\Queuety;
$forked_id = Queuety::fork_workflow( $workflow_id );
CLI
wp queuety workflow fork <id>
| Valitsin | Kuvaus |
|---|---|
<id> |
Haarautettavan työnkulun tunniste (pakollinen) |
wp queuety workflow fork 42
# Success: Workflow #42 forked. New workflow ID: 43.
Näin se toimii
Kun haarautat työnkulun:
- Alkuperäisen työnkulun rivi lukitaan ja luetaan
- Uusi työnkulun rivi lisätään samalla tilalla, vaihemäärityksillä ja nykyisellä vaiheella
- Uuden työnkulun nimi on
{original_name}_fork_{timestamp} - Nykyinen vaihe lisätään haarautetun työnkulun jonoon
workflow_forked-lokitapahtuma kirjataan sekä alkuperäiseen että haarautettuun työnkulkuun- Alkuperäinen työnkulku jatkaa käsittelyä normaalisti
Haarautettu työnkulku on täysin itsenäinen. Sillä on oma työnkulun tunnus, oma tilakopio ja omat työjonon merkinnät. Haarautumiskohdasta eteenpäin työnkulut voivat edetä eri suuntiin.
Käyttötapaukset
Vaihekäsittelijöiden A/B-testaus
Haarauta työnkulku testataksesi kahta eri toteutusta tulevassa vaiheessa:
// Original workflow will use the existing CallLLMHandler (GPT-4).
// Fork it to test with a different handler.
$forked_id = Queuety::fork_workflow( $workflow_id );
// Modify the forked workflow's state to use a different model.
// (Update the state via a custom step or direct DB update.)
Mitä jos -analyysi
Haarauta työnkulku päätöskohdassa tutkiaksesi eri haaroja:
// Workflow is at step 3, about to process data.
// Fork it so we can try two different processing strategies.
$fork_a = Queuety::fork_workflow( $workflow_id );
$fork_b = Queuety::fork_workflow( $workflow_id );
Jokainen haara jatkaa samalla syötetilalla, mutta sitä voi muokata kulkemaan eri reittiä.
Rinnakkainen kokeilu
Kun työnkulku saavuttaa kohdan, jossa haluat kokeilla useita lähestymistapoja rinnakkain, haarauta se kutakin lähestymistapaa varten ja vertaa tuloksia, kun kaikki haarat ovat valmistuneet.
Haarautumisten seuranta
Kummankin työnkulun lokitapahtuma sisältää viittauksen toiseen:
- Alkuperäisessä:
context.forked_workflow_idviittaa uuteen työnkulkuun - Haarautetussa:
context.forked_from_workflow_idviittaa alkuperäiseen
Kysely lokista löytääksesi työnkulun kaikki haarat:
$logs = Queuety::logger()->for_workflow( $workflow_id );
foreach ( $logs as $entry ) {
if ( 'workflow_forked' === $entry['event'] ) {
$context = json_decode( $entry['context'] ?? '{}', true );
// $context['forked_workflow_id'] is the new workflow
}
}
Rajoitukset
- Haarautettu työnkulku ei peri alkuperäisen tapahtumalokia, vaan aloittaa puhtaalla lokilla.
- Työnkulun suoritusten välisiä suhteita ei kopioida. Jos alkuperäisessä työnkulussa oli käynnissä oleva työnkulun suoritus, haarautettu työnkulku ei saa siitä kopiota.
- Haarautettu työnkulku on nykyisen tilan tilannekuva. Alkuperäisen työnkulun käynnissä olevia töitä ei kopioida.