Zakaj se 23-urni opomnik VPN sproži za napačno sejo
Obvestilo po 23 urah mora slediti eni seji, ne računu. Pripnite časovnik na povezavo, ki se je začela, spanje in ponovno povezovanje pa obravnavajte kot ločena primera.
Obvestilo se je pojavilo dvajset minut po povezavi. Števec pod njim je tekel od prejšnjega jutra ali od zadnje avtentikacije računa in nič v opozorilu ni povedalo, katero. To je simptom: opomnik, vezan na nekaj drugega kot na povezavo pred vami.
Rešitev ni boljše opozorilo. Je odločitev, katero uro zahteva misli, in nato pripetje časovnika na predmet, ki v tisti uri obstaja.
Kaj se je sprožilo in kaj je štelo
Tri verjetni viri dajejo isto sporočilo. Koledarsko pravilo teče ob fiksni lokalni uri in ne ve ničesar o tunelih. Števec v odjemalcu se kopiči, dokler je povezava aktivna, in preživi ponovne povezave. Politika prehoda izteče sejo na strežniški strani in najprej pošlje opozorilo.
Samo zadnja dva se nanašata na sejo in tudi ta dva se ne strinjata. Števec odjemalca meri, kar je opazil lokalni proces; prehod meri, kar je avtenticiral in obračunal. Spanje, sprememba omrežja ali ponovni zagon opazovalca jih lahko ločijo za ure, zato se opozorilo in vsiljeni iztek razideta.
Tri ure za eno zahtevo
Začnite s tem, da zapišete stavek, ki ga resnično želite. Opozoriti, preden prehod konča to povezavo, ni ista zahteva kot opomniti po dnevu povezanega časa. Ni isto niti kot poročati, da ta seja traja že 23 ur. Vsaka različica poimenuje drug dogodek in druga komponenta mora odgovoriti nanj.
Nato preverite, ali podatki obstajajo. Lokalni začetni časovni žig vam da starost seje brez odvisnosti od strežnika. Politika prehoda vam da preostalo življenjsko dobo, a le če jo prehod izpostavi. Poročilo o uporabi vam da trajanje po dejstvu in to ne more poganjati vnaprejšnjega obvestila.
Pripnite časovnik na sejo, ne na račun
Najprej izberite predmet. Račun lahko drži več naprav in več hkratnih sej, zato opomnik, vezan na uporabniško ime, ne more povedati, katera povezava je dosegla starost. Pripnite ga na profil in na tisto aktivacijo, in ko se aktivacija konča, prekličite čakajoče obvestilo.
| Evidence you can read | What it establishes | Where it misleads |
|---|---|---|
| Connection state changes to active | A session started now | Does not carry the gateway's own session identifier |
| Duration reported at disconnect | Total service time for that session | Arrives too late for any advance notice |
| Interim usage update | Time accounted up to that update | Staleness equals the update interval |
| Local timestamp taken at activation | Age of your observation | Resets whenever the observer restarts |
Ta tabela je pogodba za vaš lastni obveščevalnik, ne opis API-ja za povratne klice katerega koli odjemalca. Kar koli nameščeni izdelek dokumentira o stanju povezave, je vir, na katerega se je treba pripeti; kjer izpostavlja le dogodke avtentikacije, povejte to na glas in sprejmite grobnejše vedenje, namesto da bi sklepali o seji.
Preizkusite ga s kratkim pragom
Nikoli ne razhroščujte dnevnega časovnika z dnevnim čakanjem. Dodajte nastavljiv prag, nastavite ga na trideset sekund in po vrsti izvedite štiri prehode: poveži, počakaj, prekini, znova poveži. Vsak prehod naj da natanko eno spremembo stanja, ponovna povezava pa naj načrtuje nov rok, ne pa podeduje starega.
# current connection state and profile identity
nmcli -f GENERAL.STATE,GENERAL.CONNECTION connection show work
# the notifier unit you wrote: does it restart the deadline or resume it?
journalctl --user -u vpn-timer.service --since "-5 min" -o cat
Glejte časovne žige, ne formulacijo. Obvestilo, ki prispe z začetnim časom prejšnje seje, je pripetilo napačen predmet, obvestilo, ki prispe dvakrat za en rok, pa pomeni, da zastavica poslano ni bila nikoli shranjena.
Spanje, ponovno povezovanje in zamujena dostava
Spanje zlomi oba naivna načrta. Monotono odštevanje se ustavi, medtem ko stroj spi, rok po stenski uri se še premika, časovnik, ki se sproži med spanjem, pa je dostavljen pozno ali sploh ne. Odločite se, kakšno vedenje zahteva vaša zahteva, nato stroj uspavajte čez prag in to potrdite.
Dostava si zasluži enako skrb. Če obvestila ni mogoče prikazati, ga postavite v čakalno vrsto in pred končnim prikazom znova preverite, ali ciljna seja še obstaja; sicer je uporabnik opozorjen na povezavo, ki se je že končala. Prisilna prekinitev in obnova poverilnic ostaneta zunaj te poti, ker je opomnik, ki tiho spremeni usodo povezave, odločitev politike, oblečena v obvestilo.