![]() |
![]() |
![]()
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? |
|
|
![]() |
![]()
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/. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 12:13 |