A 11. ábrán a frissítés folyamatát bemutató Java-stílusú pszeudokód látható. A folyamatot az időzítő ütése indítja, amely ekkor átadja a frissítendő UserURL objektum egyedi azonosítóját a metódusnak.
// frissítendő UserURL objektum betöltése final UserURL workUrl = loadUrl(); if (workUrl.isRefreshDisabled()) { // ha az UserURL figyelése le van tiltva return; } if (workUrl.isDisabledBeforeNow()) { // ha az UserURL frissítése egy adott jövőbeli időpontig // le van tiltva hibák miatt return; } // ugyanezt a weblapot figyelő más UserURL-ek összegyűjtése List<UserURL> similarUrls = findSimilarUrls(workUrl); similarUrls.add(workUrl); // a listából kikeressük az utoljára frissített elemet UserURL lastUpdatedUrl = findLastUpdatedUrl(similarUrls); URLData recvData; int minRefreshPeriod = 10; // percekben if (lastUpdatedUrl.refreshedRecently(minRefreshPeriod)) { // ha az utolsó 10 percben le volt kérdezve a weblap // a szervertől, akkor a régi tartalmat használjuk recvData = lastUpdatedUrl.getRecvDataOld(); } else { recvData = getContentFromWeb(workUrl); } for (UserURL anUrl: similarUrls) { URLData aRecvData = recvData.clone(); for (Filter aFilter: anUrl.getFilters()) { // szűrők futtatása aRecvData = aFitler.run(aRecvData); } List<News> news = anUrl.getModule().run(aRecvData); anUrl.addAllNews(news); }
11. ábra: A frissítés folyamata
A folyamat a korábbi fejezetekben bemutatott aktivitás-diagramokat annyival egészíti ki, hogy képes az alwaysRefresh attribútum kezelésére, tehát a felhasználók akkor is kaphatnak értesítést a figyelt weboldal módosításáról, ha más felhasználók időzítője indítja a frissítési folyamatot.
Ha a folyamat során bármilyen kivétel dobódik, akkor növeljük az errorCount számlálót, és a korábban ismertetett hibakezelést hajtjuk végre, melynek során például a disabledBefore értékét is beállítjuk.
Legutóbbi hozzászólások
9 év 12 hét
10 év 1 hét
10 év 5 hét
10 év 23 hét
11 év 25 hét
11 év 30 hét
11 év 31 hét
11 év 32 hét
11 év 42 hét
12 év 12 hét