Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Uruchamianie w czasie
Avatarus
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


Witam
Potrzebuje w skrypcie użyć funkcje która będzie odpalana w czasie.
Na zasadzie że włączamy coś i trwa to np 10 min, licznik odlicza do 00:00 i odpala się skrypt.
Z tym że ważna sprawa, te licznik ma być niezależny od użytkownika który go uruchomił.
Czyli jak taki user zamknie okno przeglądarki, to ten skrypt się wykona.

Zasada podobna jak w grach przez przeglądarkę.

Macie pomysły?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Eeeee

EDIT: @Quantum: Rzeczywiście, kłania mi się czytanie ze zrozumieniem. Teraz dopiero to zobaczyłem :/

Ten post edytował everth 28.07.2010, 20:39:53
Go to the top of the page
+Quote Post
vokiel
post
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Np zrobić tabelę harmonogramu, potem cronem pobierać akcje, których czas wykonania właśnie nastał.
Go to the top of the page
+Quote Post
Quantum
post
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@everth oj chyba nie (IMG:style_emoticons/default/smile.gif)

while + ignore_user_abort ?
Go to the top of the page
+Quote Post
Avatarus
post
Post #5





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


a czy dobrym rozwiązaniem była by tabela z akcjami odroczonymi w czasie i skrypty crona który odpalał by co 1 sec spryt php który zajmowałby się tymi akcjami?
Go to the top of the page
+Quote Post
zelu
post
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cron'a nie odpalisz czesciej niz co minute
Go to the top of the page
+Quote Post
thek
post
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zajedziesz bazę chłopie (IMG:style_emoticons/default/smile.gif) Na temat o jakim piszesz były już tutaj tematy. To się rozwiązuje nieco inaczej. Robisz tabelę z eventami czy jak to chcesz nazwać i ustawiasz nowym akcjom znaczniki czasowe zakończenia akcji. Zwykłe timestamp. User widzi te związane z jego id. Po stronie usera JavaScript odbiera te znaczniki i tworzy z nich timer odliczający. Gdy czas dobiegnie do 0 następuje odświeżenie lub nie dzieje się nic poza napisem Wykonano/Koniec. Dopiero gdy strona zostanie odświeżona wszystko się wykona na serwerze. Dzięki temu nie katujesz bazy niepotrzebnie i nie musisz dbać o idealny harmonogram. Skrypt wykona dopiero wtedy, gdy musi. A jak są walki robione skoro userów jest dwóch? Ano skrypt wykonuje się tylko raz, gdy tylko stronę odświeży pierwszy z nich. Gdy klika drugi to raport i cała akcja już jest w bazie. Tak więc przydaje się w takich sytuacjach znacznik dodatkowy dla danego timestamp który synchronizuje info o tym, czy raport już jest, nie ma go, czy właśnie jest tworzony przez jednego z graczy.

Apropo eventów... Można w mysql 5.x korzystać z mechanizmu eventów jednorazowych zamiast CRONa, ale moim zdaniem dla tego typu zagadnienia to przerost formy nad treścią (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Avatarus
post
Post #8





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

Ostrzeżenie: (0%)
-----


czyli tabela z eventami,
jak js doliczy do 0 to poprzez ajaxa wywołanie skryptu
jak będzie zamknięte okno przeglądarki to przy refreshu

W sumie proste i skuteczne (IMG:style_emoticons/default/biggrin.gif)
Dziękuje
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 22:14