Ինչու է 23-ժամյա VPN հիշեցումը գործարկվում սխալ սեսիայի համար
23-ժամյա ծանուցումը պետք է հետևի մեկ սեսիայի, ոչ թե հաշվին։ Կապեք ժամաչափը այն միացմանը, որը սկսվել է, և քունն ու վերամիացումը դիտարկեք որպես առանձին դեպքեր։
Ծանուցումը հայտնվեց միանալուց քսան րոպե անց։ Դրա տակի հաշվիչը աշխատում էր նախորդ առավոտից, կամ հաշվի վերջին նույնականացումից ի վեր, և ոչինչ ազդարարման մեջ չէր ասում, թե որն է։ Դա է ախտանիշը՝ հիշեցում, որը կապված է ձեր առջևի միացումից բացի այլ բանի հետ։
Լուծումը ավելի լավ ազդարարում չէ։ Լուծումը որոշելն է, թե պահանջը որ ժամացույցն է նկատի ունենում, և հետո ժամաչափը կապել այդ ժամացույցում գոյություն ունեցող օբյեկտի հետ։
Ինչ գործարկվեց, և ինչ էր հաշվում
Երեք հավանական աղբյուր տալիս են նույն հաղորդագրությունը։ Օրացույցի կանոնը աշխատում է ֆիքսված տեղական ժամին և ոչինչ չգիտի թունելների մասին։ Հաճախորդի հաշվիչը կուտակվում է, քանի դեռ որևէ միացում գործում է, և դիմանում է վերամիացումներին։ Դարպասի քաղաքականությունը սեսիան ավարտում է սերվերի կողմից և նախազգուշացում ուղարկում նախապես։
Միայն վերջին երկուսն են սեսիայի մասին, և նույնիսկ նրանք չեն համաձայնում։ Հաճախորդի հաշվիչը չափում է այն, ինչ նկատել է տեղական գործընթացը. դարպասը չափում է այն, ինչ նույնականացրել և հաշվառել է։ Քունը, ցանցի փոփոխությունը կամ դիտորդի վերագործարկումը կարող են նրանց բաժանել ժամերով, և դրա համար է, որ ազդարարումն ու պարտադրված ժամկետը հեռանում են իրարից։
Երեք ժամացույց մեկ պահանջի հետևում
Սկսեք գրել այն նախադասությունը, որն իրականում ուզում եք։ Նախազգուշացնելը մինչև դարպասը կավարտի այս միացումը, նույն պահանջը չէ, ինչ մեկ օր միացված ժամանակից հետո հիշեցնելը։ Դա նաև նույնը չէ, ինչ հայտնելը, որ այս սեսիան արդեն 23 ժամ գործում է։ Յուրաքանչյուր տարբերակ անվանում է այլ իրադարձություն, և այլ բաղադրիչ պետք է պատասխանի դրան։
Ապա ստուգեք՝ արդյոք տվյալները գոյություն ունեն։ Տեղական մեկնարկի ժամադրոշմը տալիս է սեսիայի տարիքը՝ առանց սերվերից կախվածության։ Դարպասի քաղաքականությունը տալիս է մնացած կյանքի տևողությունը, բայց միայն եթե դարպասը բացահայտում է այն։ Օգտագործման հաշվետվությունը տալիս է տևողությունը փաստից հետո, և դա չի կարող առաջնորդել նախնական ծանուցում։
Կապեք ժամաչափը սեսիային, ոչ թե հաշվին
Նախ ընտրեք օբյեկտը։ Հաշիվը կարող է պահել մի քանի սարք և մի քանի միաժամանակյա սեսիա, ուստի օգտանվան վրա խարսխված հիշեցումը չի կարող ասել, թե որ միացումն է հասել տարիքին։ Կապեք այն պրոֆիլին և այդ ակտիվացմանը, և ակտիվացման ավարտին չեղարկեք սպասող ծանուցումը։
| 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 |
Այդ աղյուսակը պայմանագիր է ձեր սեփական ծանուցիչի համար, ոչ թե որևէ հաճախորդի հետադարձ կանչի API-ի նկարագրություն։ Ինչ էլ որ տեղադրված արտադրանքը փաստագրում է միացման վիճակի մասին, դա է այն աղբյուրը, որին պետք է կապվել. որտեղ այն բացահայտում է միայն նույնականացման իրադարձություններ, ասեք դա բարձր և ընդունեք ավելի կոպիտ վարքը՝ սեսիա ենթադրելու փոխարեն։
Փորձարկեք կարճ շեմով
Երբեք մի վրիպազերծեք մեկօրյա ժամաչափը մեկօրյա սպասումով։ Ավելացրեք կարգավորվող շեմ, դրեք այն երեսուն վայրկյան, և հերթով անցկացրեք չորս անցում՝ միանալ, սպասել, անջատվել, նորից միանալ։ Յուրաքանչյուր անցում պետք է տա ճիշտ մեկ վիճակի փոփոխություն, և վերամիացումը պետք է նշանակի նոր ժամկետ՝ հինը ժառանգելու փոխարեն։
# 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
Նայեք ժամադրոշմերին, ոչ թե ձևակերպմանը։ Ծանուցումը, որը գալիս է նախորդ սեսիայի մեկնարկի ժամով, կապել է սխալ օբյեկտը, և ծանուցումը, որը գալիս է երկու անգամ մեկ ժամկետի համար, նշանակում է, որ ուղարկվածի դրոշը երբեք չի պահպանվել։
Քուն, վերամիացում և բաց թողնված առաքում
Քունը կոտրում է երկու միամիտ նախագծերն էլ։ Միապաղաղ հետհաշվարկը կանգ է առնում, մինչ մեքենան քնում է, պատի ժամացույցի ժամկետը շարունակում է շարժվել, և քնի ընթացքում բռնկվող ժամաչափը հասցվում է ուշ կամ ընդհանրապես չի հասցվում։ Որոշեք, թե ձեր պահանջին որ վարքն է պետք, ապա քնեցրեք մեքենան շեմից այն կողմ և հաստատեք։
Առաքումը նույն խնամքին է արժանի։ Եթե ծանուցումը հնարավոր չէ ցուցադրել, դրեք այն հերթի մեջ և նախքան վերջնական ցուցադրումը նորից ստուգեք, որ թիրախ սեսիան դեռ գոյություն ունի. այլապես օգտատերը զգուշացվում է արդեն ավարտված միացման մասին։ Հարկադիր անջատումը և վկայականների նորացումը մնում են այս ուղուց դուրս, որովհետև հիշեցումը, որը լուռ փոխում է միացման ճակատագիրը, ծանուցման հագուստ հագած քաղաքականության որոշում է։