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 readWhat it establishesWhere it misleads
Connection state changes to activeA session started nowDoes not carry the gateway's own session identifier
Duration reported at disconnectTotal service time for that sessionArrives too late for any advance notice
Interim usage updateTime accounted up to that updateStaleness equals the update interval
Local timestamp taken at activationAge of your observationResets 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.

Sorodni članki