Töövoo ajas tagasi kerimine
Queuety saab töövoo tagasi eelmise sammuni kerida ja jätkata täitmist sellest punktist. See on kasulik, kui samm andis halva väljundi, kui soovite uuesti proovida teistsuguse seadistusega või kui peate rikutud andmed taastama kogu töövoogu uuesti käivitamata.
Tagasikerimine tugineb Töövoo sündmuslogile. Sündmuslogis peavad sihtsammu kohta olema state_after andmed.
Töövoo tagasikerimine
PHP API
Kutsuge välja Queuety::rewind_workflow(), edastades töövoo ID ja sammu indeksi, milleni tagasi kerida:
use Queuety\Queuety;
// Rewind workflow 42 to step 1.
// The state is restored to the snapshot taken after step 1 completed,
// and step 2 is enqueued for re-execution.
Queuety::rewind_workflow( $workflow_id, to_step: 1 );
Parameeter to_step on selle sammu nullpõhine indeks, mille lõpetatud olek tuleb taastada. Täitmine jätkub järgmisest sammust (to_step + 1).
CLI
wp queuety workflow rewind <id> <step>
| Suvand | Kirjeldus |
|---|---|
<id> |
Töövoo ID (nõutav) |
<step> |
Samm, milleni tagasi kerida, alates 0-st (nõutav) |
wp queuety workflow rewind 42 1
Kuidas see töötab
Kui kerite töövoo tagasi sammuni N:
- Sündmuste logist küsitakse pärast sammu N lõpuleviimist salvestatud väärtust
state_after - Kui hetktõmmist pole, visatakse
RuntimeException - Töövoo rida lukustatakse
- Töövoo olek asendatakse hetktõmmisega, säilitades praeguse töövoo rea kõik reserveeritud võtmed (
_steps,_queue,_priorityjne) current_stepväärtuseks määratakse N + 1 jastatusväärtuseksrunning- Kõik väljad
error_messagejafailed_attühjendatakse - Indeksis N + 1 olev samm lisatakse töötlemisjärjekorda
- Salvestatakse logisündmus
workflow_rewound
Seejärel võtab töötaja järjekorda lisatud sammu ette ja töövoog jätkub sellest punktist tavapäraselt.
Nõuded
Tagasikerimiseks on sündmuste logis vaja andmeid state_after. Logi salvestab need automaatselt iga sündmuse step_completed puhul. Kui sündmuste logi on kärbitud (käsuga WorkflowEventLog::prune()) ja sihtsammu olekut enam pole, siis tagasikerimine nurjub.
Veenduge, et sündmuste logi säilitusaeg kataks perioodi, milleni võib olla vaja tagasi kerida.
Kasutusjuhud
Vigase sammutöötleja parandamine
Kui sammutöötlejas oli viga, mille tõttu see andis vale väljundi, saate paranduse juurutada ja tagasi kerida:
// Step 2 (CallLLMHandler) produced garbled output due to a prompt bug.
// After fixing CallLLMHandler, rewind to step 1 so step 2 runs again
// with the corrected handler.
Queuety::rewind_workflow( $workflow_id, to_step: 1 );
Uuesti proovimine teistsuguse konfiguratsiooniga
Kui samm nurjus väliste tegurite tõttu (API kiiruspiirang, valed identimisteabe andmed), parandage konfiguratsioon ja käivitage samm tagasikerimisega uuesti:
// Step 3 failed because the API key was expired.
// After updating the key, rewind to step 2 so step 3 retries.
Queuety::rewind_workflow( $workflow_id, to_step: 2 );
Vigastest andmetest taastamine
Kui varasem samm lisas olekusse vigaseid andmeid, kerige tagasi teadaolevalt korras hetktõmmiseni:
// Step 0 fetched correct data, but step 1 corrupted it.
// Rewind to step 0 to restore the good state and re-run step 1.
Queuety::rewind_workflow( $workflow_id, to_step: 0 );
Võrdlus uuesti proovimisega
| Aspekt | retry_workflow() |
rewind_workflow() |
|---|---|---|
| Jätkab alates | Nurjunud sammust | Mis tahes varasemast sammust |
| Olek | Praegune töövoo olek | Taastatakse sündmuste logi state_after põhjal |
| Eeldus | Töövoo olek on failed |
Sihtsammu hetktõmmis on sündmuste logis olemas |
| Olek pärast toimingut | running |
running |
| Logisündmus | puudub | workflow_rewound |