![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dotknął mnie ciekawy problem. Robię system, którego część ma się zajmować tworzeniem plików z danymi i ich usuwaniem. Powiedzmy, że użytkownik przechowuje pewne dane w plikach na serwerze w swoim katalogu. Pliki te mają swoją "datę ważności" mówiącą o tym czy dany plik jest aktualny i czy ma być używany. Przykład: User tworzy sobie 3 pliki A, B i C - każdy z tych plików ma mieć inny czas życia, na przykład A ma żyć 10 sekund, B - 2 godziny a C - 3 minuty. User poprzez PHP może edytować i odczytywać swoje pliki aż do momentu ich wygaśnięcia - po tym czasie pliki powinny zostać usunięte. Tu pojawia się problem gdzie/jak zapisać dane o czasie życia plików w taki sposób by można było łatwo to sprawdzić i łatwo usunąć wszystkie przestarzałe pliki dostępne w katalogu użytkownika? Powiem tylko, że zapis w bazie danych odpada ze względów założeń projektu (nie mojego) - stąd prośba o pomysły (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. Cron i tak (jeśli będzie obecny) będzie co jakiś czas usuwał przedawnione pliki - sam system też będzie w zależności od konfiguracji je usuwał przy odczycie itd.
2. Wiadomo - dla dużej liczby plików wydajność mocno spadnie - ale to i tak chyba najlepsze rozwiązanie 3. Podobnie jak w 2 - ale to dodatkowe sprawdzanie dostępności tego pliku + jego edycja i zapis Co do samego systemu - to wiem, że tak skończę - na szczęście nie jest to przewidziane na bardzo duże obciążenie i znaczącą liczbę użytkowników. A co do przerzucenia się na sqllite - myślałem o tym i jeszcze o innych rozwiązaniach - ale cały sęk w tym że to ma być jak to powiedziano "mega mobilne" - żeby łatwo to wrzucić na serwer, dołączyć jedną klasę do skryptu i już móc z tego korzystać, bez dodatków. Zostawię to tak jak jest - i tak jeśli nagle okaże się, że ma to obsłużyć w danej implementacji znaczny ruch to w wyjątkowych przypadkach można zastosować bazę - więc nie ma w sumie problemu (IMG:style_emoticons/default/wink.gif) Dzięki za wszelkie uwagi - masz w 100% rację (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 02:01 |