php programmer
20.09.2007, 10:22:03
Hej
Korzystając z usługi hostingu, najczęściej nie mamy możliwości
korzystania z usługi CRON. Dlatego mam takie pytanie.
Co myślicie o Ajax jako alternatywy dla tej usługi?
Wyjaśnię jak to widzę.
Za każdym wejściem, przez kolejnego użytkownika,
system sprawdza ile czasu minęło od ostatniej wizyty,
dokonanej przez innego użytkownika. Jeśli minęło więcej
niż na przykład 6 godzin, wywołujemy Ajax, lecz tylko w jedną
stronę, więc nie oczekujemy odpowiedzi.
Ktoś by mógł spytać, dlaczego do tego zaraz Ajax.
Otóż gdybym uruchamiał skrypt bezpośrednio na stronie,
a powiedzmy skrypt wykonywał by się 2 minuty,
to użytkownik musiał by czekać 2 minuty na przeładowanie strony.
A tak wywołujemy Ajax, i zadanie jest wykonywane w tle.
Co o tym myślicie?
mike
20.09.2007, 10:29:29
Cytat(php programmer @ 20.09.2007, 11:22:03 )

Co o tym myślicie?
Stary pomysł i nadal beznadziejny.
Masz operację, którą chcesz odpalać co godziną a nie było na stronie nikogo od trzech godzin.
Jak to widzisz?
php programmer
20.09.2007, 10:38:11
Cytat
Masz operację, którą chcesz odpalać co godziną a nie było na stronie nikogo od trzech godzin.
Jak to widzisz?
To nie szkodzi. Takie Skrypty służą zazwyczaj do zaktualizowania, cachownia danych.
A przecież dane biorą się ze strony, są modyfikowane głównie przez użytkowników.
Jeśli nikogo nie było na stronie, to nie było nowych danych.
Osoba, która wejdzie po tych 3 godzinach je zaktualizuje.
Cysiaczek
20.09.2007, 10:41:43
Takie rozwiązanie jest sensowne tylko do wykonywania zadań, które nie mają ściśle określonych godzin wykonania, i są zadaniami okresowymi. Np, usuwanie plików tymczasowych można faktycznie wykonać przy okazji logowania się administratora, czy nawet użytkownika, ale już robienie zrzutów jakiejśc konketnej tabelu z bazy co godzinę - już nie, bo istnieje zbyt duże ryzyko (co już ~mike napisał) braku wejść na stronę.
btw. CRON jest już na prawie każdym szanującym się serwerze.
Pozdrawiam.
mokry
20.09.2007, 10:42:53
No a co w przypadku kiedy zadaniem tego CRON'a jest rozsyłanie powiadomień na e-mail/ sieć GG np. co godzinę?
Wtedy takie rozwiązanie odpada...
Albo jeśli skrypt jest bardzo pamięcio-/proceso- -chłonny i może być odpalany tylko w nocy pomiędzy 2-3 w nocy?
Normalni użytkownicy nie wchodzą na stronę o tej porze...
mike
20.09.2007, 10:42:54
Ale operacje odpalane często za pomocą CRONa nie zawsze dotyczą danych dostarczonych przez użytkownika.
Przykład z brzegu: zaciąganie danych z giełdy do własnych statystyk.
Zresztą to w ogóle nie przejdzie przy aplikacjach, które nie mają wiele do czynienia z użytkownikiem i nie zależą od jego wejścia na stronę.
Poza tym zawsze jest webcron. Jakie przewagi ma metoda z AJAXem? Żadnych a ma wady.
Dodatkową jest zbędne obciążanie użytkownika.
php programmer
20.09.2007, 10:47:47
Cytat
ale już robienie zrzutów jakiejśc konketnej tabelu z bazy co godzinę - już nie, bo istnieje zbyt duże ryzyko (co już ~mike napisał) braku wejść na stronę.
Skoro nie było nikogo przez te trzy godziny, to nikt nie mógł
zmodyfikować zawartości tej tabeli, ani obejżeć zmian jakie zaszły na giełdzie.
Można powiedzieć, że w tym przypadku akurat to jest
nawet lepsze rozwiązanie, bo CRON zrobił by w tym czasie
dokładnie trzy takie same zrzuty, co jest przecież niepotrzebne.
@mokry - ale mówimy o przypadku gdy nie ma CRONA, a nie dlatego, że mam takie widzi mi się,
@mike - o webronie nie wiedziałem
mokry
20.09.2007, 11:01:33
Ano w momencie, kiedy nie ma CRON'a to sprawa faktycznie komplikuje się, pozostaje wtedy jak to powiedział @mike, webcron.
Faktycznie, w Polsce coraz więcej serwerów oferuje już w podstawowych pakietach hostingowych usługę CRON, co w dzisiejszych czasach wydaje się być coraz częściej stosowane.
AJAX moim skromnym zdaniem można wykorzystywać stricte dla użytkownika //sprawdzanie wiadomości w profilu, wysyłanie formularzy, logowania, ...//, natomiast wykorzystywanie go do innych celów- mija się z jego przeznaczeniem.
Z resztą ze względów bezpieczeństwa, po co osoba wchodząca na stronę ma znać adresy skryptów służących administratorowi?
Sedziwoj
20.09.2007, 11:46:31
@php programmer
Czy Ty aby dobrze przeczytałeś co mike napisał? (podpowiem że chodzi o dane z giełdy)
envp
20.09.2007, 11:59:56
Na zdrowy rozsądek, skoro na serwerze nie ma cron`a to jak chcesz wykonywać skrypt przez dwie minuty. Zakładając taką wersje serwera to masz góra 30s. na wykonanie skryptu php... Więc trzeba byłoby to robić na kilka razy... Btw. CRONA masz już nawet na serwerze na nazwa.pl gdzie placisz 60 zł za pół roku...
kris2
20.09.2007, 22:37:55
cron dziala z odpowiednimi uprawnieniami. np user, www, root.
Wg mnie nie da sie go zastapic ajaxem i generalnie jest to poroniony pomysl
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.