Automaatio epäonnistui: tarkista ennen uutta yritystä
Aikakatkaisu voi peittää jo valmistuneen toiminnon. Selvitä tulos aikajanan ja häiriölomakkeen avulla ennen kuin yrität uudelleen.
TL;DR: Ennen automaation uudelleenyritystä tarkista, onko toimenpide jo tapahtunut kohteessa. Timeout ilmoittaa vain, että vastausta ei saatu ajoissa. Säilytä operaation identiteetti, yritykset ja käytettävissä olevat todisteet. Jatka vain sitä, mikä on kesken palveluntarjoajan sopimuksen mukaisesti; jätä epäselvät tulokset tarkistettavaksi.
Tärkeimmät kohdat
- Erota suoritettava operaatio sen jokaisesta suoritusyrityksestä.
- Kohdejärjestelmässä vahvistettu merkintä painaa enemmän kuin automaatiotyökalun punainen väri.
- Idempotenssilla on laajuus ja kesto; se ei itsessään suojaa koko työnkulkua.
Sisältö
Automaatio ilmoittaa virheestä ja joku ehdottaa painamaan «Yritä uudelleen». Ennen sitä on hyvä vastata konkreettisempaan kysymykseen: mitä on vielä tekemättä? Saattaa puuttua toimenpide, sen vahvistus tai myöhempi vaihe. Koko työnkulun toistaminen sopii yhteen näistä tilanteista ja voi pahentaa muita.
Perustajan tai pienen tiimin tapauksessa tutkinnan on voitava jatkua, vaikka integraation rakentanutta henkilöä ei olisi paikalla. Tämä opas tarjoaa aikajanan ja kortin tarkistettujen ja tuntemattomien asioiden erottamiseksi. Esimerkki on fiktiivinen: se ei kuvaa Frihetin tapausta eikä käytä todellisia palveluita, asiakkaita tai tunnuksia.
Näytön virhe ja työn tila
Aikakatkaisu eli timeout tarkoittaa, ettei vastausta saatu odotusajan kuluessa. Se itsessään ei kerro, tallensiko kohde jotain. AWS selittää tämän ongelman pyynnöllä, joka olisi voinut luoda resurssin, vaikka pyynnön esittäjä ei saanut vahvistusta. Tämän epävarmuuden ratkaiseminen edellyttää vaikutuksen ja sen alkuperän tunnistamista.
Työskentele kolmen tilan kanssa: vaikutus vahvistettu, vaikutuksen puuttuminen vahvistettu ja tuntematon. «Ei näy näytölläni» kuuluu kolmanteen, niin kauan kuin voi olla suodattimia, toinen tili, vanhentunut indeksi tai vielä aktiivinen suoritus. Merkitse myös, kuka tarkisti tilan ja mihin aikaan: havainnolla on konteksti, ei ikuista voimassaoloa.
Aikajana, joka muuttaa päätöstä
Oletetaan työnkulku, joka luo sisäisen tehtävän ja tallentaa sitten sen viitteen seuranta-arkkiin. Kaikki seuraava on hypoteettista. Ajat käyttävät samaa simuloitua kelloa; todellisessa tutkimuksessa säilytä aikavyöhyke ja jokaisen merkinnän alkuperä.
| Aika | Fiktiivinen todiste | Mitä osoittaa |
|---|---|---|
09:00:00 | Yritys ATT-DEMO-A lähettää operaation OP-DEMO-X. | Yritettiin luoda tehtävä; ei vielä todista tulosta. |
09:00:02 | Kohteen loki tallentaa TASK-DEMO-T, joka liittyy operaatioon OP-DEMO-X. | Tehtävä luotiin tätä operaatiota varten. |
09:00:10 | Automaatiotyökalu kirjaa timeoutin. | Ei saanut vahvistusta odotusaikansa kuluessa. |
09:02:00 | Valtuutettu lukupyyntö hakee TASK-DEMO-T ja sen alkuperäviitteen. | Vaikutus on edelleen olemassa ja vastaa pyydettyä. |
09:03:00 | Arkki ei sisällä viitettä; sen suoritusloki osoittaa, että tämä vaihe ei alkanut. | Seuranta puuttuu, ei tehtävän luominen. |
Seuraava askel on seurannan palauttaminen dokumentoidun menettelyn mukaisesti. Uudelleenkäynnistäminen kohdasta «luo tehtävä» koskisi uudelleen jotain jo ratkaistua. Jos viimeinen rivi vain sanoisi «en näe sitä arkissa», meidän olisi silti suljettava pois viive, suodatin tai aktiivinen prosessi ennen sinne kirjoittamista.
Operaation viite pysyy vakaana; yrityksen tunniste muuttuu jokaisella suorituksella. Vastaanotetulla tapahtumalla ja luodulla tehtävällä on myös eri identiteetit. Säilytä niiden suhteet, jotta et sekoita kahta saman työn yritystä kahteen oikeutettuun työhön.
Tallenna kortti, jota toinen henkilö voi jatkaa
Aloita säilyttämällä olemassa olevat lokit ja hillitsemällä uusia kirjoituksia kyseiselle työnkululle tarkoitetun tauotusmekanismin avulla. Tauko ei kumoa suoritettua eikä takaa, että jo käynnissä olevat pyynnöt pysähtyvät. Tarkista jono ja odottavat uudelleenyritykset ennen kuin oletat, ettei kukaan muu toimi.
Kopioi tämä kortti sisäiseen lokiin, jonne on asianmukainen pääsy. Käytä viitteitä todisteisiin välttäen salaisten tai henkilökohtaisten tietojen liittämistä jaettuihin asiakirjoihin. Jokainen korjaus on lisättävä päivämäärällä, poistamatta edellistä havaintoa.
Tapaus: [sisäinen viite]Haluttu operaatio: [yksi konkreettinen tulos]Palveluntarjoaja / tili / ympäristö: [kohteen konteksti]Operaatio / tapahtuma / yritykset: [ID:t ja suhteet]Työnkulun versio: [suoritettu versio]Viimeksi vahvistettu vaihe: [todiste ja aika aikavyöhykkeellä]Vaikutuksen tila: [vahvistettu / puuttuminen vahvistettu / tuntematon]Kohteen todiste: [viite, kysely ja näkyvyysrajat]Työ yhä aktiivinen: [pyynnöt, jono ja odottavat uudelleenyritykset]Uudelleenyrityksen ehdot: [dokumentaatio, laajuus ja aikaikkuna]Puuttuva tieto: [päätökseen tarvittava todiste]Seuraava toimenpide: [tietojen haku tai rajattu toiminnan palauttaminen]Vastuuhenkilö / seuraava tarkistus: [henkilö ja päivämäärä]Myöhempi tulos: [uusi todiste, ylikirjoittamatta edellistä]«Puuttuminen vahvistettu» vaatii vahvemman todisteen kuin tyhjä haku: esimerkiksi kohteen dokumentoiman suoritusta edeltävän hylkäyksen, kun muut yritykset on suljettu pois mahdollisina vaikutuksen aiheuttajina. Jos et voi perustella tätä tilaa, säilytä «tuntematon».
Idempotenssiavaimella on rajoituksensa
Tarkista palveluntarjoajan sopimus tietystä pyynnöstä, tilistä ja ympäristöstä. Avain, joka suojaa kirjoitusta, ei automaattisesti suojaa myöhempää ilmoitusta tai toista palvelua. Sitä ei myöskään voi lisätä takautuvasti pyyntöön, joka on jo lähtenyt ilman sitä. Kortin on linkitettävä sovellettavaan dokumentaatioon, ei vain sanottava «meillä on idempotenssi».
Stripe-palvelussa idempotenttiset pyynnöt — API v1 käyttävät uudelleen ensimmäisen suorituksen tallennettua tulosta, mukaan lukien 500-virheet. Stripe vertaa parametreja ja voi poistaa avaimia vähintään 24 tunnin kuluttua; poistetun avaimen uudelleenkäyttö käynnistää toisen pyynnön. Sen virheopas varoittaa mahdollisista vaikutuksista 500-virheen jälkeen: avaimen vaihtaminen tai sen vanhenemisen odottaminen ei osoita, että epävarman toiminnon toistaminen olisi turvallista.
Edellinen määräaika kuuluu Stripelle. Toisen kohteen osalta merkitse sen oma aikaikkuna, identiteetti, jota se pitää toistettuna, ja rinnakkaisten pyyntöjen käsittely. Jos palautus edellyttää parametrien muuttamista, käsittele sitä uutena päätöksenä, tarkistaen aiemmat vaikutukset.
Päätä todisteiden perusteella, askel askeleelta
Seuraava taulukko on ehdotettu toimintakriteeri, ei palveluntarjoajan yleinen käytäntö. Erota tutkimus tietojen muokkausvaltuutuksesta.
| Mitä olet tarkistanut | Seuraava päätös |
|---|---|
| Oikea vaikutus on jo olemassa ja kuuluu kyseiseen operaatioon. | Säilytä sen viite; jatka vain keskeneräisiä vaiheita, joille on turvallinen menettely. |
| On todiste siitä, että sitä ei tapahtunut, ilman aktiivisia yrityksiä. | Vahvista uudelleen, että työ on edelleen tarpeellinen, ja käytä palveluntarjoajan hyväksymää uudelleenyritystä. |
| On edelleen tuntematon, mutta on olemassa dokumentoitu mekanismi saman pyynnön palauttamiseksi. | Tarkista alkuperäinen avain, parametrit, laajuus ja voimassaolo ennen palautusmenettelyn käyttöä olemassa olevan valtuutuksen puitteissa. |
| On edelleen tuntematon ja jokin ehto puuttuu. | Pidä työnkulku keskeytettynä ja nimeä puuttuvan tiedon selvittäjä; älä luo toista operaatiota virheen korjaamiseksi. |
| On duplikaatteja tai yhteensopimattomia vaikutuksia. | Säilytä todisteet ja valmistele tarkistettava korjaus; älä poista merkintöjä intuitiolla. |
Peruuttamattomat tai vaikutuksiltaan merkittävät kirjoitustoimenpiteet vaativat ehdotetun palautuksen ihmisen tekemän tarkistuksen. Mikään avain tai vihreä painike ei tarjoa «tasan kerran» -takuuta koko työnkululle.
Tarkista myös kuka yrittää uudelleen
Automaatiotyökalulla, API-asiakkaalla ja palveluntarjoajalla voi olla omat uudelleenyrityksensä. Stripe-webhookeissa manuaalinen uudelleenlähetys ei peruuta automaattisia uudelleenyrityksiä; lisäksi tapahtumat voivat toistua ja saapua epäjärjestyksessä. Tapahtuman uudelleenlähetys ei myöskään vastaa API-kirjoituksen idempotenttia toistamista: ne ovat eri mekanismeja.
Ennen kortin sulkemista tarkista kohteen nykyinen tila, kesken olevat vaiheet ja myöhemmin mahdollisesti saapuvat yritykset. Määritä, kuka seuraa seuraavaa suoritusta. Kortin sulkeminen ei vastaa työn ratkaisemista: jos jokin tulos jää tuntemattomaksi, pidä tapaus avoinna vastuuhenkilön ja tarkistuspäivämäärän kanssa.
Sen jälkeen voit tarkistaa, kannattaako työnkulku pitää automatisoituna poista, automatisoi ja delegoi (englanniksi) -kriteerin mukaisesti. Jos se liittyy Frihetiin, etsi sopiva rajapinta kehittäjädokumentaatiosta ja integraatioluettelosta. Säilytä tämä kortti työnkulun rinnalla: seuraavan henkilön on voitava löytää viimeksi tarkistettu tila ilman, että hänen tarvitsee rakentaa sitä uudelleen chatista.
Tekniset lähteet tarkistettu 14. syyskuuta 2026. Kortit, päätökset ja DEMO-viitteet ovat omia opetusmateriaaleja; ne eivät ole ohjeita muutosten suorittamiseen todellisessa palvelussa.
Oliko tästä artikkelista hyötyä?
Usein kysytyt kysymykset
Tarkoittaako timeout, että automaatio ei tehnyt mitään?
Ei. Se tarkoittaa, että vastausta odottanut taho lopetti odottamisen. Kohdejärjestelmä on voinut suorittaa toiminnon, käsitellä sitä yhä tai olla vastaanottamatta pyyntöä. Tarkista tulos kohteen viitteiden ja lokien avulla ennen kirjoitustoimenpiteen toistamista.
Voinko luoda uuden idempotenssiavaimen uutta yritystä varten?
Uusi avain voi tunnistaa toisen operaation ja sallia toisen vaikutuksen. Säilytä alkuperäinen avain, kun dokumentoitu sopimus sallii saman pyynnön uudelleenyrityksen; jos parametrit muuttuvat tai suojaus on vanhentunut, tutki asiaa ennen jatkamista.
Mitä teen, jos en pysty osoittamaan, tapahtuiko toimenpide?
Pidä tila tuntemattomana, kirjaa ylös puuttuva todiste ja ajoita tarkistus. Peruuttamattomien tai vaikutuksiltaan merkittävien kirjoitustoimenpiteiden osalta vastuuhenkilön on päätettävä palautuksesta; älä muuta vastaamattomuutta luvaksi toistaa.