Šta je novo?

Cron jobs

BelThaZoR

Slavan
Učlanjen(a)
13.04.2006
Poruke
802
Poena
370
Potreban mi je neki php skript koji će mi omogućiti pokretanje druge php skripte sa određenim intervalom ponavljanja ali samo dok ima nekoga na sajtu. Interval u kojem se podaci osvežavaju je obično 1 minut. E sad, razmišljao sam da napravim cron job koji bi se izvršavao na svaki minut. On bi pritom proveravao da li postoji neko na sajtu (za šta skript imam i odlično radi) i ako postoji osvežio podatke, ukoliko ne nikom ništa. Ali mi se čini da je to veliko bacanje resurasa servera, još treba uzeti u obzir da se svi podaci preuzimaju sa drugog servera kojeg u iste svrhe osim mog koristi još gomila sajtova.

E sad, da li je moguće izvesti ovako nešto:

Pretpostavimo da niko nije trenutno na sajtu. Prva sledeća osoba koja uđe će pokrenuti skript koji će napraviti nešto kao cronjob koji se ponavlja na svakih 60 sekundi. Skript treba da se izvršava na 60 sekundi sve dok se ne detektuje da je broj posetilaca 0 i tada se briše cronjob sve dok opet neko ne uđe na sajt. Međutim ukoliko dođe do greške prilikom preuzimanja podataka sa drugog servera, skript treba pokrenuti ponovo za 10 sekundi.

Nadam se da sam bio dovoljno jasan :)
 
Ne znam koliko imas posetilaca, ali da svaki load strane pokrece neku proveru/skript je bas tracenje resursa :)
Jeftiniji je cron na minut.
E sad ako hoces da radis na prvi nacin, mozes i bez krona, startuj neki svoj background (daemon) proces iz tog php-a, koji ce se ugasiti kad detektuje da nema nikoga...
 
Ne razumem se dovoljno, ali mogu da ti kažem da cron služi za periodično izvršavanje komandi, nije crontab za to da po njemu praviš petlje i uslovne korake. U crontab bi mogao recimo da dodaš da se svaki minut izvršava skript koji proverava da li je neko logovan, pa ako jeste, onda trte, ako nije, onda mrte.
 
Ne znam koliko imas posetilaca, ali da svaki load strane pokrece neku proveru/skript je bas tracenje resursa :)
Jeftiniji je cron na minut.
E sad ako hoces da radis na prvi nacin, mozes i bez krona, startuj neki svoj background (daemon) proces iz tog php-a, koji ce se ugasiti kad detektuje da nema nikoga...
Svaki put kad neko otvori stranicu bi moglo da se proveri koliko je posetilaca na sajtu, ako je 0 onda da pokrene skript, ako je veće onda ne treba jer ga je neko već pokrenuo.

Ne razumem se dovoljno, ali mogu da ti kažem da cron služi za periodično izvršavanje komandi, nije crontab za to da po njemu praviš petlje i uslovne korake. U crontab bi mogao recimo da dodaš da se svaki minut izvršava skript koji proverava da li je neko logovan, pa ako jeste, onda trte, ako nije, onda mrte.

Pa da, to sam i mislio, to mi je prva ideja, samo ne znam kolko je to trošenje resurasa na serveru.
 
Moj predlog je da se to uradi pomocu AJAX-a (AJAJ-a), stavis timer da se ponavlja na svakih 60sec u javascriptu, zatim preko aja(j)x pozoves php skriptu i dobio si ono sto si trazio :)

Java scripta se poziva samo ako ima posetilaca.
 
Svaki put kad neko otvori stranicu bi moglo da se proveri koliko je posetilaca na sajtu, ako je 0 onda da pokrene skript, ako je veće onda ne treba jer ga je neko već pokrenuo.

Da, ali i ta provera kosta nesto procesorskog vremena puta broj loada strane. Ako imas iole veci broj posetilaca to moze da bude prilicno "skuplje" od crona.
Ne razumem koliko se cron script razlikuje, ali pokretanje svakog minuta nekog malog skripta nije uopste neko opterecenje za server kakav god da je. Naravno na pocetku vrsis proveru da li je neko ulogovan...

Moj predlog je da se to uradi pomocu AJAX-a (AJAJ-a), stavis timer da se ponavlja na svakih 60sec u javascriptu, zatim preko aja(j)x pozoves php skriptu i dobio si ono sto si trazio :)

Java scripta se poziva samo ako ima posetilaca.

Nije losa ideja, ali ima jednu manu, ako je npr 100 ljudi na sajtu, to znaci 100x svakog minuta poziv te skripte...
 
Pa sta onda, to su klasicni HTTP requestovi. Ne bi trebalo da ima vecih problema ako to lepo optimizuje i ako se ne hostuje na masini koja ima 128 MB memorije i Pentium 3 procesor.
 
Da, ali i ta provera kosta nesto procesorskog vremena puta broj loada strane. Ako imas iole veci broj posetilaca to moze da bude prilicno "skuplje" od crona.
Ne razumem koliko se cron script razlikuje, ali pokretanje svakog minuta nekog malog skripta nije uopste neko opterecenje za server kakav god da je. Naravno na pocetku vrsis proveru da li je neko ulogovan...

Nije losa ideja, ali ima jednu manu, ako je npr 100 ljudi na sajtu, to znaci 100x svakog minuta poziv te skripte...

Sve ovo upravo radim da bi se izbeglo ovo iznad. Php i ajax treba da se pokreću odvojeno.
Vidim ja da će ovo ići ipak u neki cron. Inače se sajt hostuje na hostgatoru.

Hvala svima puno.
 
Ma koji bre crni cron, samo ces zakomplikovati stvar bezveze. Nije cron nista manje procesorski zahtevan plus mozes da zveknes o ogranicenje broja pokretanja CJ-a na sat koji neki provajderi imaju a mozda i Hostgator. AJAX request je vrlo elegantno i "jeftino" resenje ako imas iole programerskog iskustva da ga napises kako valja.
 
Vrh Dno