A ja nie wątpię w myśl zasady: skoro widziałem mojego wujka 10 lat temu i od tego czasu nie mam z nim kontaktu, a umarł 5 lat temu to ja nic o tym nie wiem i dla mnie on nadal żyje, dopóki nie będę chciał go odwiedzić bezpośrednio, albo ktoś inny się o tym nie dowie i mi o tym nie powie

. Jednak poczekam, aż wypowiedzą się mądrzejsi ode mnie, bo nie wiem czy to ma sens.
No zakładając utopijny scenariusz chciałbym, aby 100% użytkowników było na stronie ten raz w tygodniu w ciągu 20 minut, więc wtedy obciążenie serwera w scenariuszu utopijnym równoważy się dla opcji nr 1 i 2. Jednak jeżeli będzie tylko 20% osób, to mam 80% oszczędności dla reszty. A i tak muszę dać refresh 60 sekund, żeby ta zmiana była widoczna. Bo co z tego, że Cron się wykona 20 razy(20 minut), jak nie odświeżyłem strony od 3 minuty, to będę widział tylko akcje do 3 minuty, więc skoro będzie refresh przy 60 sekundzie, to od razu się załaduje funkcja. Jedynie w bazie będę miał aktualne dane. Ale na co komu aktualne dane w bazie, skoro nikt ich nie wyświetla i są z zewnątrz niewidoczne.
Cron jest wygodny, bo wszystko mam już w bazie. A tak muszę dopisywać przed każdą akcją w której będzie wyświetlony jakiś rekord z bazy który został zmodyfikowany podczas trwania akcji (a zawsze będzie modyfikowany) funkcję, która mi sprawdzi czy czas tej akcji już się powinien odbyć i jeżeli powinien się odbyć to zaktualizować dane. Tylko czy jest sens iść tym tokiem myślenia?
W przypadku podglądu zdarzenia online, sprawa jest prosta: refresh 60 sekund na stronie gdzie są wyświetlane dane i jeżeli data aktualna jest równa dacie startu wydarzenia to następuje odpalanie funkcji aż do czasu gdy funkcja została odpalona 20 razy. Dobrze myślę?
Ale co w przypadku podglądu zdarzenia które powinno być wykonane przykładowo wczoraj? W funkcji mam już zrobione, że ma przechodzić do kolejnej akcji dopiero po 1 minucie(nawet jak ktoś odświeża stronę co 5 sekund gdy jest online w trakcie zdarzenia), a kończyć się jeśli liczba minut(akcji) zdarzenia wyniosła 20. Tylko jak w takim wypadku, przyspieszyć wykonanie tego skryptu, żeby od razu po wejściu na to zdarzenie wyświetlone były dane z bazy po wykonaniu zdarzenia? No bo przecież to wydarzenie realnie powinno mieć przypisane dane z ostatniej akcji bo realnie już się zakończyło, a będą pokazane dane z 1-szej akcji, bo po wejściu na to wydarzenie funkcja wykona się jeden raz. Bo jeśli umieszczę ten sam kod, to po wejściu na zdarzenie pokażą mi się dane tylko po 1akcji, oczywiście nie muszę czekać 60sekund na pojawienie się danych po 2akcji itd. tylko klikając 20 razy odśwież w ciągu 30 sekund, ukażą mi się kolejne akcje po każdym odświeżeniu (bo data początku tego zdarzenia + 20*60 sekund jest mniejsze od aktualnej daty i nie blokuję tego odstępu 60 sekund), ale to jest strasznie złe, przecież nikt nie będzie klikał 20 razy F5, żeby zobaczyć końcowy efekt zdarzenia. Powinno być tak, że po wejściu na to zdarzenie, wyświetlają się dane końcowe (po 20 akcji/minucie). Tylko jak? Pętla? Jak dam pętlę która zawsze ma się wykonać 20 razy po wejściu na już zakończone zdarzenie, to znowu obciążę serwer.