![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Posiadam na praktycznie wszystkich podstronach sporego portalu, który tworzę od pół roku taki oto skrypt:
Powyższy skrypt zapisuje na jakiej podstronie znajduje się user oraz ustawia kolumnę z czasem sesji na 5 minut. Mam też plik, który wykonuje cron co 5min w takiej postaci: Ma on za zadanie wyeliminowanie nie aktywnych użytkowników, którzy byli zalogowani. Odnośnie skryptu crona nie mam zastrzeżeń. Natomiast skrypt, który ustawia 5min "życia" sesji przy zaledwie 3rekordach w bazie o unikalnym ID każdy, wydłuża czas generowania strony aż, o 0.04000 sekundy! na pierwszy rzut oka to malutko, ale przewidywuje w tabeli `online` trzymać około 10k rekordów, więc czas ten mocno się wydłuży... Mam założone indexy na kolumny, ale problem chyba leży w logice mojego skryptu wywalającego sesje, aby nadać danemu userowi status "offline", gdy ten nie korzysta z portalu przez 5min. Jeśli ktoś ma inną idee, szybszą to będę wdzięczny za wskazówki... Ten post edytował fr33d0m 2.07.2012, 18:24:51 -------------------- UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Panowie, nie kumam was. Rozwiązanie Rysh'a jest tak samo czasochłonne co moje - sprawdzałem. Dodanie czasu na przód dla sesji w bazie poprzez timestamp i później tylko sprawdzanie warunkiem czy sesja jeszcze żyje, jest lepsza od crona - to prawda, ale to załatwia tylko 1/2 problemu. Muszę wykonać update na każdej podstronie, aby wiedzieć gdzie znajduje się dany user i w tym tkwi największy problem... W sumie temat jest bez sensu, bo nie da się zrobić tego bez UPDATE, a z UPDATE ostro muli.
//edit: z update: Czas generowania 0.08065s Bez update: Czas generowania 0.02974s Ten post edytował fr33d0m 2.07.2012, 20:26:27 -------------------- UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:33 |