Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stały proces PHP
phuria
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.07.2013

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


Witam, piszę dość skomplikowaną aplikację i potrzebuję jakiegoś sposobu na uruchomienie przy starcie serwera procesu, który działałby cały czas. Taki proces zarządzałby pamięcią cashe i obsługiwał AJAX lub WebSockets. Ważne, żeby z takim procesem mogły się komunikować procesy powstałe w wyniku requesta.

W dokumentacji PHP nie udało mi się znaleźć nic pożytecznego. Sam wpadłem na pomysł zrobienia aplikacji konsolowej, którą bym ręcznie uruchamiał przy starcie serwera, a procesy requesta komunikowały by się z nią za pomocą Socketów. Nie przeprowadziłem jeszcze testów, ale domyślam się, że takie rozwiązanie mija się z celem (zbyt duża strata czasu na komunikację).

Opcjonalnie mógłbym zrobić jakiś extension, ale nie udało mi się znaleźć, żadnego sensownego manuala albo dokumentacji...

Czy jest może ktoś kto miałby pomysł jak rozwiązać ten problem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Potrzebujesz po prostu uruchomić proces który będzie wykonywał jakieś zadania. Pozostaje kwestia komunikacji z tym procesem. Tutaj jest podstawowe pytanie czy to ma działać na jednej maszynie (np. potoki) czy komunikacja ma być dostępna też przez sieć (gniazda).
Napisanie rozszerzenia do php przecież niczego nie zmienia w Twoim problemie. Nadal potrzebujesz uruchamiać proces i się z nim komunikować.

Cytat
PHP to IMO bardzo słaby wybór na proces działający w tle. Jeśli chodzi o rozwiązania socketowe to polecałbym Ci się zainteresować node.js

Możesz podać coś na potwierdzenie, że to słaby pomysł czy po prostu słaby i już. Można pozostać przy PHP: http://reactphp.org/ + http://socketo.me/.
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(destroyerr @ 21.08.2013, 10:48:18 ) *
Możesz podać coś na potwierdzenie, że to słaby pomysł czy po prostu słaby i już.

Oczywiście, że mogę. Co prawda nie wiem jak z PHP w wersjach >= 5.4, ale przy 5.3 było poważne problemy z wyciekami pamięci. Nie wiem czy to tylko kwestia samego PHP czy skrypt był po prostu kiepsko napisany. Tak czy siak był to deamon chata obsługujący max kilka tysięcy rozmów jednocześnie. Jego jedynym zadaniem było przekazywanie pakietów z jednego socketa na drugi. Nic nie zapisywał, tylko "podawał" wiadomości ze źródła do celu.

Po max kilku godzinach zużycie pamięci przez ten skrypt sięgało kilkunastu GB. Efekt był taki, że skrypt trzeba było co kilka godzin restartować żeby ratować serwer przed swapowaniem, co za każdym razem rozłączało wszystkich aktywnych użytkowników czata.

Ten post edytował sowiq 21.08.2013, 09:56:05
Go to the top of the page
+Quote Post

Posty w temacie
- phuria   Stały proces PHP   21.08.2013, 09:12:16
- - sowiq   PHP to IMO bardzo słaby wybór na proces działający...   21.08.2013, 09:19:32
- - phuria   W bazie danych mam zapisane obiekty, przy pierwsze...   21.08.2013, 09:37:00
- - sowiq   W takim razie, jak dla mnie chcesz na nowo wymyśla...   21.08.2013, 09:44:37
- - destroyerr   Potrzebujesz po prostu uruchomić proces który będz...   21.08.2013, 09:48:18
|- - sowiq   Cytat(destroyerr @ 21.08.2013, 10:48...   21.08.2013, 09:55:00
- - phuria   Komunikacja będzie się odbywała w obrębie jednej m...   21.08.2013, 09:55:14
- - sowiq   Czyli nie taki ten Twój problem skomplikowany jak ...   21.08.2013, 10:03:06
- - Crozin   1. Wygląda na to, że do tego programu będzie chcia...   21.08.2013, 10:03:42
- - phuria   Crozin, przy użyciu pthreads i apc myślę, że uda m...   21.08.2013, 10:13:58
- - Crozin   Fakt, możesz skorzystać z pthreads, ale to rozszer...   21.08.2013, 10:32:09
- - jackraymund   C++ bedzie najlepszym rozwiazaniem, zrobisz wszyst...   21.08.2013, 10:40:43
- - phuria   Zakładając, że ten kontroler pamięci i komunikacj...   21.08.2013, 10:46:02
- - styryl   Przecież najlepszy rozwiązaniem będzie node.js sta...   21.08.2013, 10:54:30
- - jackraymund   1. Php wysyła requesta do serwera, a serwer do php...   21.08.2013, 11:01:10
- - Crozin   Cytat[...] ale jeśli rzeczywiście pthreads jest ta...   21.08.2013, 11:20:18
- - phuria   Crozin, przepraszam, że nie wspomniałem, ale aplik...   21.08.2013, 11:35:03
- - destroyerr   Cytatoraz komunikacja WebSocket pomiędzy procesami...   21.08.2013, 11:54:15


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: 10.10.2025 - 12:13