Imam sledeću situaciju:
Web servis generiše slike na zahtev. Pošto generisanje slike traje, napravio sam php skript za keširanje slika na drugom serveru tako da tražene slike prikazujem iz keša.
Procedura je sledeća
- klijent zatraži sliku od keša
- keš proveri da li ima tu sliku i da li je slika nije previše stara i ako je tako prosledi klijentu sliku
- ako slike nema u kešu ili je ima ali je stara, onda povuče novu sliku od servisa, sačuva je i prosledi klijentu
To radi kako treba.
Ako slike nema u kešu, klijent svakako mora da sačeka dok keš se povuče sliku od servisa da bi je prosledio.
Problem koji se javlja je da većinu slika klijenti dovoljno retko traže tako daispada da svaki put kada neki klijent zatraži sliku ona je već zastarela u kešu, pa mor da čeka dok keš ažurira sliku.
Pošto nije kritično da klijent u momentu kada traži sliku mora da dobije u tom trenutku ažurnu verziju, hteo bih da izbegnem to čekanje ako sliku imam u kešu čak i ako je ona zastarela.
Ideja je da ako keš ima sliku odmah tu sliku pošalje klijentu a tek onda proveri da li je slika zastarela pa ako jeste ažurira je tako da za sledeći upit za istu sliku ima ažuriranu verziju.
Najbolje što mi je palo na pamet je da keš slike ne ažurira direktno prilikom upita nego da taj posao delegira nekom paralelnom procesu koji će to da radi u pozadini, na primer nekom cron jobu.
Ima li neko ideju da li bi to moglo da se izvede bez cron job-a? Suština je da to bude jednostavno za održavanje. Naravno, radi se o klasičnom hostingu tako da korisnik nema root pristup serveru i sve poslastice koje dolaze sa tim.
Web servis generiše slike na zahtev. Pošto generisanje slike traje, napravio sam php skript za keširanje slika na drugom serveru tako da tražene slike prikazujem iz keša.
Procedura je sledeća
- klijent zatraži sliku od keša
- keš proveri da li ima tu sliku i da li je slika nije previše stara i ako je tako prosledi klijentu sliku
- ako slike nema u kešu ili je ima ali je stara, onda povuče novu sliku od servisa, sačuva je i prosledi klijentu
To radi kako treba.
Ako slike nema u kešu, klijent svakako mora da sačeka dok keš se povuče sliku od servisa da bi je prosledio.
Problem koji se javlja je da većinu slika klijenti dovoljno retko traže tako daispada da svaki put kada neki klijent zatraži sliku ona je već zastarela u kešu, pa mor da čeka dok keš ažurira sliku.
Pošto nije kritično da klijent u momentu kada traži sliku mora da dobije u tom trenutku ažurnu verziju, hteo bih da izbegnem to čekanje ako sliku imam u kešu čak i ako je ona zastarela.
Ideja je da ako keš ima sliku odmah tu sliku pošalje klijentu a tek onda proveri da li je slika zastarela pa ako jeste ažurira je tako da za sledeći upit za istu sliku ima ažuriranu verziju.
Najbolje što mi je palo na pamet je da keš slike ne ažurira direktno prilikom upita nego da taj posao delegira nekom paralelnom procesu koji će to da radi u pozadini, na primer nekom cron jobu.
Ima li neko ideju da li bi to moglo da se izvede bez cron job-a? Suština je da to bude jednostavno za održavanje. Naravno, radi se o klasičnom hostingu tako da korisnik nema root pristup serveru i sve poslastice koje dolaze sa tim.