Bildiriş qoşulduqdan iyirmi dəqiqə sonra göründü. Altındakı sayğac keçən səhərdən, ya da hesab son dəfə doğrulandığı vaxtdan işləyirdi və xəbərdarlıqda hansının olduğu deyilmirdi. Əlamət budur: qarşınızdakı bağlantıdan başqa bir şeyə bağlanmış xatırlatma.

Həll daha yaxşı xəbərdarlıq deyil. Tələbin hansı saatı nəzərdə tutduğunu qərarlaşdırmaq, sonra taymeri həmin saatda mövcud olan obyektə bağlamaqdır.

Nə işə düşdü və nəyi sayırdı

Üç ehtimal olunan mənbə eyni mesajı verir. Təqvim qaydası sabit yerli vaxtda işləyir və tunellər haqqında heç nə bilmir. Müştəridəki sayğac hər hansı bağlantı qalxdıqca yığılır və yenidən qoşulmalara dözür. Şlüz siyasəti sessiyanı server tərəfində bitirir və əvvəlcə xəbərdarlıq göndərir.

Yalnız son ikisi sessiyadan bəhs edir və onlar da razılaşmır. Müştəri sayğacı yerli prosesin müşahidə etdiyini ölçür; şlüz isə doğruladığını və hesaba aldığını ölçür. Yuxu, şəbəkə dəyişikliyi və ya müşahidəçinin yenidən başlaması ikisini saatlarla ayıra bilər, buna görə də xəbərdarlıqla məcburi bitmə vaxtı bir-birindən uzaqlaşır.

Bir tələbin arxasında üç saat

Əvvəlcə həqiqətən istədiyiniz cümləni yazın. Şlüz bu bağlantını bitirməzdən əvvəl xəbərdarlıq etmək, bir günlük bağlantı vaxtından sonra xatırlatmaqla eyni tələb deyil. Bu sessiyanın 23 saat açıq olduğunu bildirməklə də eyni deyil. Hər variant başqa hadisəni adlandırır və ona başqa komponent cavab verməlidir.

Sonra məlumatın mövcud olub-olmadığını yoxlayın. Yerli başlama vaxt damğası serverdən asılı olmadan sessiyanın yaşını verir. Şlüz siyasəti qalan ömrü verir, amma yalnız şlüz bunu açıqlayırsa. İstifadə hesabatı müddəti sonradan verir, bu isə əvvəlcədən bildirişi idarə edə bilməz.

Taymeri sessiyaya bağlayın, hesaba yox

Əvvəlcə obyekti seçin. Bir hesab bir neçə cihaz və eyni vaxtda bir neçə sessiya saxlaya bilər, ona görə istifadəçi adına bağlanmış xatırlatma hansı bağlantının yaşa çatdığını deyə bilməz. Onu profilə və həmin aktivləşdirməyə bağlayın, aktivləşdirmə bitəndə gözləyən bildirişi ləğv edin.

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

O cədvəl sizin öz bildiriş alətiniz üçün müqavilədir, heç bir müştərinin geri çağırış API-sinin təsviri deyil. Quraşdırılmış məhsulun bağlantı vəziyyəti üçün sənədləşdirdiyi hər şey bağlanmalı olduğunuz mənbədir; yalnız doğrulama hadisələrini açıqlayırsa, bunu açıq deyin və sessiya çıxarmaq əvəzinə daha qaba davranışı qəbul edin.

Qısa hədd ilə sınaqdan keçirin

Bir günlük taymeri bir günlük gözləmə ilə heç vaxt sazlamayın. Konfiqurasiya oluna bilən hədd əlavə edin, onu otuz saniyəyə qoyun və dörd keçidi sıra ilə işlədin: qoşul, gözlə, ayrıl, yenidən qoşul. Hər keçid dəqiq bir vəziyyət dəyişikliyi yaratmalı, yenidən qoşulma köhnəni miras almaq əvəzinə yeni son tarix planlaşdırmalıdır.

# 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

İfadəyə deyil, vaxt damğalarına baxın. Əvvəlki sessiyanın başlama vaxtını daşıyaraq gələn bildiriş yanlış obyekti bağlamışdır, bir son tarix üçün iki dəfə gələn bildiriş isə göndərilmə bayrağının heç vaxt saxlanmadığını göstərir.

Yuxu, yenidən qoşulma və buraxılmış çatdırılma

Yuxu rejimi hər iki sadəlövh dizaynı pozur. Monoton geri sayım maşın yatarkən dayanır, divar saatına əsaslanan son tarix irəliləməyə davam edir və yuxu zamanı işə düşən taymer gec və ya heç çatdırılmır. Tələbinizin hansı davranışı istədiyini qərarlaşdırın, sonra maşını həddən keçərək yuxuya salın və təsdiqləyin.

Çatdırılma da eyni qayğıya layiqdir. Bildiriş göstərilə bilmirsə, onu növbəyə qoyun və nəhayət göstərməzdən əvvəl hədəf sessiyanın hələ də mövcud olduğunu yenidən yoxlayın; əks halda istifadəçi artıq bitmiş bağlantı barədə xəbərdarlıq alır. Məcburi əlaqə kəsilməsi və etimad məlumatlarının yenilənməsi bu yoldan kənarda qalır, çünki bağlantının taleyini səssizcə dəyişən xatırlatma bildiriş libasında bir siyasət qərarıdır.

Əlaqəli məqalələr