![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 2 Dołączył: 8.10.2010 Skąd: Poniemieckie miasto przesiedleńców Ostrzeżenie: (0%) ![]() ![]() |
Poszukuję rozwiązań które w skuteczny i niezbyt skomplikowany sposób pozwolą mi na zaimplementowanie w PHP wielowątkowych procesów.
Posiadam aplikację, która jest uruchamiana po stronie CLI. Jest to daemon który realizuje pewne powatarzające się zadania. W tej chwili te zadania są ustawiane w kolejkę i realizowane jedno po drugim, po zakończeniu wszystkich zadań proces rozpoczyna się od nowa. Rozwiązanie takie uzależnia sukces wszystkich zadań od każdego z nich z osobna. Potrzebuję rozwiązania, które pozwoli mi na stworzenie procesu nadrzędnego, który będzie pilnował podprocesów a w każdym podprocesie będzie realizowane jedno zadanie i procesy będa mogły działać równolegle i niezależnie od siebie, komunikując się tylko z procesem nadrzędnym informując o swoim stanie, przebiegu zadań itp. Rozwiązanie musi działać pod Windowsem. Ten post edytował olechafm 21.05.2012, 07:39:11 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 21.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Na Windowsie nie ma możliwości używania wątków. Jak zostało napisane w dokumentacji PHP (http://www.php.net/manual/en/intro.pcntl.php): "Note: This extension is not available on Windows platforms." Jedynym znanym mi rozwiązaniem, realizującym taką funkcjonalność w "zbliżony" sposób, do odpalanie z głównego skryptu innego skrypu-workera, za pomocą: WScript.Shell.
Powyższe odpali proces php-win.exe "w tle", bez dodatkowego okienka konsoli. Oczywiście warunki w jakich jest konieczność odpalania workera musisz sobie określić, żeby nie odpalał Ci się w każdym przebiegu pętli while. Ten post edytował fonfi 21.05.2012, 09:56:20 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 2 Dołączył: 8.10.2010 Skąd: Poniemieckie miasto przesiedleńców Ostrzeżenie: (0%) ![]() ![]() |
mam świadomość, dlatego też szukam bibliotek zewnętrznych które moga współpracować z PHP a niekoniecznie być napisanymi w tym jezyku i załatwiać pewne kwestie związane z wątkami, rozwiązanie z procesem w tle mnie niezbyt satysfakcjonuje gdyż zależy mi na kontroli statusu procesu w procesie nadrzędnym itp.
znalazłem coś takiego jak biblioteka ZeroMQ która robi np. coś takiego:
source: http://zguide.zeromq.org/php:all#Multithreading-with-MQ ale tu znowu jest używany $pid = pcntl_fork(); |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 13:50 |