![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam mały problem - moja aplikacja łączy się z zewnętrznym serwerem i pobiera/wysyła do niego dane. Tak więc w czasie gdy oczekuje odpowiedzi z serwera skrypt nic nie robi. Problem jest taki, że takich zapytań muszę wykonać kilka-kilkadziesiąt tysięcy w możliwie krótkim czasie.
Pomysł jest taki, że chciałbym uruchomić skrypt "równolegle" kilkukrotnie - taki pseudokod Oczywiście file_get_contents używam, jako przykład - w rzeczywistości będzie to wywołanie metody klasy, która odpowiada za łączność z serwerem. Powyższy pseudokod wykona się po kolei - ja chciałbym aby wszystkie te połączenia wykonały się równolegle - czyli, żeby drugie wywołanie nie czekało aż skończy się pierwsze itd. Ograniczenia jakie mam: - nie mogę używać skryptów cli - musi to działać w miarę standardowej konfiguracji serwera bez konieczności instalowania egzotycznych dodatków - skrypt główny musi być wywoływany z cron'a więc wszelkie javascriptowe sztuczki też odpadają Dodam, że skrypt będzie działał w oparciu o Symfony2 - może jest tam jakieś rozwiązanie pozwalające na to. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@python_000 - niestety tutaj sprawa jest bardziej złożona bo nie znam z góry kiedy i ile razy będę musiał proces wywołać - to zależy od tego co user będzie miał w bazie. Niektórzy mogą mieć 100-500 wywołań, a inni liczone w setkach tysięcy + to będą akcje "jednorazowe" - zazwyczaj wykonywane raz lub dwa razy w tygodniu - przez pozostałą część czasu apka będzie bezczynna. Można by robić jakieś kolejki typu najpierw wywoływać skrypt A, który oblicza ilość potrzebnych wywołań i wrzuca to do kolejki i potem jakoś tą kolejkę obsługuje, ale trochę tu za dużo zabawy.
@phpion - o to też ciekawe rozwiązanie. Myślę, że na początek spróbuję to zrobić za pomocą poleceń CLI, ale całą logikę wrzucę do Services - jak ludzie będą zgłaszać, że nie mogą na swoich serwerach działać za pomocą CLI to dopiszę coś webowego - tu to curl_multi_exec wygląda obiecująco. Dzięki wszystkim za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 14:48 |