Ustawiłem kolejki w Laravel dla moich skryptów przetwarzania. Używam beanstalkd i superword. Istnieje 6 różnych rurek dla różnych rodzajów przetwarzania.Kolejki Artisan Laravel - użycie wysokiego cpu
Kwestia polega na tym, że dla każdej tuby rzemieślnik stale spawa pracowników co sekundę. Kod roboczy wydaje się spać przez 1 sekundę, a następnie wątek roboczy używa 7-15% procesora, pomnożyć to przez 6 lamp ... i chciałbym mieć wielu pracowników na probówkę .. mój procesor jest zjedzony.
Próbowałem zmienić 1 sekundę snu na 10 sekund. Pomaga to, ale wciąż istnieje ogromny skok procesora co 10 sekund, gdy pracownicy budzą się z powrotem. W tej chwili nie przetwarzam niczego, ponieważ kolejki są całkowicie puste, to po prostu pracownicy szukają czegoś do zrobienia.
Sprawdziłem także, czy użycie procesora laravel zostało odświeżone, gdy odświeżałem stronę w folderze, a było to około 10%. Znajduję się teraz na niskim poziomie instancji rackspace, co może wyjaśnić, ale wciąż ... Wydaje się, że pracownicy za każdym razem, gdy się budzą, uruchamiają instancję laravel.
Czy nie ma sposobu na rozwiązanie tego problemu? Czy muszę po prostu wpłacić dużo pieniędzy na droższy serwer, żeby móc posłuchać, czy praca jest gotowa?
EDIT:
znalazł rozwiązanie ... to było nie używać kolejki rzemieślnik: słuchacza lub kolejki: Prace zajrzałem do kodu kolejki i nie wydaje się być sposób wokół tego problemu wymaga ładowania za każdym razem, gdy pracownik sprawdza, czy jest więcej pracy do wykonania.
Zamiast tego napisałem własnego słuchacza, używając pheanstalk. Nadal używam programu laravel do przesyłania rzeczy do kolejki, a następnie niestandardowy program nasłuchujący analizuje dane kolejki, a następnie uruchamia polecenie rzemieślnika.
Teraz moje użycie procesora dla moich słuchaczy jest poniżej% 0, jedyny czas, w którym mój procesor strzela teraz, to kiedy faktycznie znajduje pracę do zrobienia, a następnie uruchamia polecenie, nic z tego.
Czy mógłbyś podzielić się swoim kodem z niestandardowym słuchaczem? Mam ten sam problem. – greatwitenorth
Jestem również zainteresowany, aby zobaczyć Twojego niestandardowego słuchacza! –
Chciałbym również zobaczyć twoje rozwiązanie. –