Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Demon w PHP, Wątek dzialajacy na serwerze w tle
Orzeszekk
post
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


Witam. Mam może niezbyt typowe pytanie. Potrzebuje sposobu aby skrypt dzialal w tle przez caly czas.

Potrzebuje w PHP utworzyć demona - wątek/skrypt/cokolwiek co bedzie mi działało w tle i np co minute kontrolował stan aplikacji.
Moja aplikacja umozliwia utworzenie turnieju, następnie daje n czasu na zapisanie sie do niego, i gdy nazbiera sie odpowiednia ilosc osob tworzy turniej, bitwy (ktore sa wpisami w bazie danych). I tu rodzi sie problem.
Operacje pilnujace turniejów są zgrupowane w jednej klasie którą po prostu uruchamiam przy kazdym wyswietleniu skryptu ktory jest zwiazany z turniejami, klasa najpierw sama sprawdza czy nic sie nie pozmienialo a nastepnie jest cos tam uruchamiane z tego. Na razie mi to wystarcza, problem jest w tym ze gdybym chcial zrobic system powiadomien na maila np. za 10 minut masz turniej, a przez caly dzien nikt by nie wchodzil na strone to skrypt nie wykona sie ani razu i turniej sie nie utworzy w odpowiednim czasie, dopiero gdy ktos odswiezy strone. Dlatego wolalbym jakiegos demona zrobic.

Jesli mozna tworzyc watki w php (krotko pisze, przerzucilem sie z asp) to utworzylbym cos w stylu wątku ktory dziala niezaleznie od skryptu (skrypt konczy sie a watek dziala dalej). A jak nie da sie to nie wiem. Max czas dzialania skryptu w php to 30 sekund wiec nie wiem jak to optymalnie rozwiazac.

Moge pokombinowac sam i nie zawracac nikomu glowy na forum ale pewnie wyjdzie tak ze wymysle durne i nieoptymalne rozwiazanie a ktos juz to dawno przeanalizowal. Wiec prosze o podpowiedzi.
Go to the top of the page
+Quote Post
wizu
post
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 15
Dołączył: 16.02.2008
Skąd: Sanok

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


Wykorzystaj linuxowy cron i np. exec() z php.
Go to the top of the page
+Quote Post
CuteOne
post
Post #3





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Jeżeli skrypt masz na linuxie poczytaj w manualu o rodzinie funkcji pcntl_ (np. pcntl_fork), która to umożliwia "odłączenie" skryptu od konsoli. Jeżeli używasz winodowsa to w dziale gotowe rozwiązania znajdziesz mój mini poradnik o tworzeniu równolegle kilku demonów

Ten post edytował CuteOne 8.09.2011, 14:32:05
Go to the top of the page
+Quote Post
Orzeszekk
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


Super (IMG:style_emoticons/default/smile.gif) dzięki za podpowiedzi (IMG:style_emoticons/default/smile.gif)

po przeczytaniu poradnika: rozumiem że jezeli skrypt bedzie działał na hostingu np home.pl to z demona nici?
Tam chyba nie dostane praw admina...

moze jest jakis programowy sposob prosto z php?

Ten post edytował Orzeszekk 8.09.2011, 20:15:29
Go to the top of the page
+Quote Post
vokiel
post
Post #5





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

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


Poza pcntl możesz też skorzystać z programu nohup, ale na home.pl raczej nie dostaniesz dostępu do ssh. Pozostaje więc napisanie skryptu w cron, który uruchomi demona i co minutę będzie sprawdzał czy demon jeszcze żyje, a jeśli nie to go uruchomi od nowa.
Go to the top of the page
+Quote Post
Orzeszekk
post
Post #6





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


hosting to glowanet.pl

jak myslicie ten serwer bedzie stał pod windows czy pod linux? zeby zadawac pytania techniczne trzeba miec tam konto a nie moge sie doprosic zleceniodawcy by sie ich zapytal o to
Go to the top of the page
+Quote Post
vokiel
post
Post #7





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

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


Obstawiam, że na 99% Linux
Go to the top of the page
+Quote Post
Orzeszekk
post
Post #8





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


Aha ok. No dobra, spróbujemy jak bede mial dostep do serwera. Na razie nie mam więcej pytan, dzięki (IMG:style_emoticons/default/tongue.gif)
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: 22.08.2025 - 14:22