Gearman: czy nadal nie ma sposobu na odzyskanie danych niestandardowych od pracownika w tle?

Po pierwsze, wiem o tymto pytanie:

Gearman: Wysyłanie danych od pracownika w tle do klienta

Co chcę wiedzieć, czy to wciąż dotyczy Gearmana? Zamierzam wysłać partię adresów URL obrazów z aplikacji internetowej PHP do pracownika przekładni (również napisanego w PHP; nazwijmy to „Głównym pracownikiem”) do przetwarzania asynchronicznego. Ten pracownik następnie wyśle ​​osobne zadanie dla każdego obrazu pracownikom niższego poziomu (poprzez addTask ()), wywołuje runTasks () i czeka na zakończenie zadań, słuchając wyjątków, gromadząc komunikaty o błędach i aktualizując ogólny status zadania.

Chociaż jestem całkowicie w porządku przy pobieraniu ogólnego statusu z Głównego Pracownika przy użyciu wywołań jobStatus (), to po prostu powiedz, że wszystkie obrazy zostały przetworzone, gdy zwracane jest [false, false, 0, 0], IZdecydowanie muszą być w stanie poinformować użytkowników, że niektórych obrazów nie można było pobrać z ich odpowiednich adresów URL lub przechowywać na serwerze.

Przypuszczam, że zawsze mogę po prostu zapisać dane niestandardowe w memcache, a następnie pobrać je z aplikacji internetowej, ale wydaje mi się to po prostu „brudniejsze” ...

Nie próbuję uzyskać żadnego wyniku, ponieważ z tego, co widziałem w podręczniku na php.net, nawet obsługa wyjątków może być wykonana tylko wtedy, gdy zadanie jest przesyłane synchronicznie, nie wspominając o pobieraniu danych niestandardowych. Miałem tylko nadzieję, że czegoś mi brakuje. Pamiętam dobrze, używamy Ubuntu Server 12.04 z libgearman6 (v 0.27) i PHP 5.3.10. Wersja rozszerzenia przekładni wynosi 1.0.2. Myślę, że baza danych jest tutaj nieistotna, ponieważ nie będę jej używać w żadnym z pracowników. I myślę, że teraz nie używamy trwałych kolejek.

questionAnswers(1)

yourAnswerToTheQuestion