Czy istnieje sposób, aby praca pcntl działała w WAMP? Muszę opracować rozwidlające się rozwiązanie i przetestować je lokalnie.WAMP i pcntl_fork
Odpowiedz
Nie, to niemożliwe. Rozszerzenie PCNTL wymaga * platform nix.
Teraz, z tym co powiedziałeś, co próbujesz zrobić, i czy możesz rozwiązać to bez rozwidlenia ...?
Edit: Niektóre alternatywy uruchomieniem procesów w tle:
Unix/Linux:
exec('nohup php yourscript.php > /dev/null 2>&1 &');
Windows;
$com = new Com('WScript.shell'); $com->run('php yourscript.php', 10, false);
dokumentacji na argumentach, patrz: rozwiązanie http://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.85).aspx
Muszę mieć uruchomione procesy współbieżne. Mogę zaimplementować za pomocą crona (i używać DB do zarządzania liczbą uruchomionych procesów). Powiedzmy jednak, że chciałbym, aby 10 równoległych procesów działało, potrzebowałbym crona do wywołania konkretnego skryptu 10 razy - w 1-minutowych przyrostach - w celu uruchomienia wszystkich 10 skryptów (co oznacza, że zajmie to całe 10 minut Dostaję pożądaną liczbę współbieżnych skryptów). Alternatywnie, mogę mieć funkcje "fikcyjne" wywoływać ten sam skrypt (np. Foo_1 wywołania foo, foo_2 wywołania foo, itp.) I wywoływać co minutę wywołanie cron foo_1, foo_2 itd. Wydaje się kludgy. – StackOverflowNewbie
@Stack: Cóż, istnieje więcej niż jeden sposób uruchamiania zadań w tle. Możesz użyć 'nohup' i' & 'na Linuksie, aby rozłączyć procesy, lub obiektu COM WScript: http://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.85).aspx uruchom zadania w tle ... – ircmaxell
@Stack: edytował odpowiedź – ircmaxell
pseudo-kod:
while (TRUE)
{
$process_limit = get_process_limit();
$process_count = get_process_count();
if process count < process limit:
{
// get_row returns a row (as an array) from the DB that needs to be processed
$row = get_row();
if($row === array())
{
// Nothing to process; sleep
sleep(2);
}
else
{
// Process row
process_count(+1);
process_row($row);
process_count(-1);
}
}
elseif process count === process limit
{
// Do not add to the process
exit;
}
elseif process count > process limit
{
// Means the process limit was decreased
// Terminate this process instance
process_count(-1);
exit;
}
}
To już odpowiedzi, ale myślałem, że chciałbym dodać moje 2p .
Możesz mieć pcntl-fork z php w oknach używając cygwin.
To bardzo trudny do zainstalowania, ale jeśli lubisz mnie, po prostu chcesz uruchomić skrypt php, to jest twój najlepszy wybór.
mam instrukcje od here:
- 1. pcntl_fork() powracający, Błąd krytyczny: wywołanie niezdefiniowanej funkcji pcntl_fork()
- 2. Używanie Pythona z WAMP
- 3. CURL dla WAMP
- 4. Error 403. Wamp Server
- 5. Wamp Virtual Host Set
- 6. Jak zainstalować PHPUnit z WAMP?
- 7. Jak udostępnić WAMP w Internecie?
- 8. Używanie PHP 7 z WAMP
- 9. Jak skonfigurować xdebug z WAMP
- 10. Jak usunąć index.php w Wamp?
- 11. wysyłanie e-maili z WAMP
- 12. Jaki serwer WAMP jest najlepszy?
- 13. Intl przedłużenie php_intl.dll z wamp
- 14. Jaka jest różnica między XAMPP lub WAMP Server i IIS?
- 15. Amazon S3 o błędzie SSL wamp localhost
- 16. Zainstalować rozszerzenie SQLSRV dla PHP na WAMP
- 17. Klient imperatywny do automatycznego serwera WAMP?
- 18. Instalacja Zend Framework na serwerze WAMP
- 19. jak programowo uruchomić ponownie WAMP lub Apache?
- 20. linii poleceń lokalnie przy użyciu wamp
- 21. Wamp-Server 2.5 localhost nie działa
- 22. XAMPP/WAMP/cokolwiek to jest: Apache działa bardzo wolno
- 23. PHP: Wewnętrzny błąd serwera przy użyciu WAMP (przy uruchomieniu)
- 24. WAMP - Twój port 80 jest rzeczywiście używany - Błąd
- 25. Który plik PHP Ini używa moja strona WAMP?
- 26. Jak mogę uruchomić MongoDB z php 5.3.5 & wamp?
- 27. Wyłączanie ostrzeżeń o wycofaniu w pliku PHP.ini WAMP
- 28. WAMP .htaccess daje Internal Server Error po przeprowadzce z XAMPP
- 29. PHP Ratchet Wamp Broadcast abonentom na publikowanie zdarzenie
- 30. Jak zalogować się do phpMyAdmin z WAMP, jaka jest nazwa użytkownika i hasło?
Można spróbować uruchomić/skompilować pod Cygwin, gdzie PCNTL jest bardziej prawdopodobne, aby funkcjonować. W przeciwnym razie możesz coś rzemiosła przez rozszerzenie w32api, jeśli odważysz się (i jeśli to nadal jest dostępne). – mario