2010-05-01 23 views
5

Chciałbym stworzyć pewien rodzaj rozproszonej konfiguracji do uruchamiania ton małych/prostych zapytań sieciowych REST w środowisku produkcyjnym. Dla każdego 5-10 powiązanych zapytań, które są wykonywane z węzła, wygeneruję bardzo małą ilość danych pochodnych, które będą musiały być przechowywane w standardowej relacyjnej bazie danych (takiej jak PostgreSQL).Rozwiązanie do dystrybucji WIELU prostych zadań sieciowych?

Jakie platformy są zbudowane dla tego typu zestawu problemów? Natura, rozmiary danych i ilości wydają się sprzeczne z nastawieniem Hadoop. Istnieje również więcej architektur opartych na siatce, takich jak Condor i Sun Grid Engine, o których już wspominałem. Nie jestem pewien, czy te platformy mają jakiekolwiek odzyskiwanie po błędach (sprawdzanie, czy zadanie się powiedzie).

Co naprawdę chciałbym, to kolejka typu FIFO, do której mogę dodać zadania, z końcowym wynikiem aktualizacji mojej bazy danych.

Wszelkie sugestie dotyczące najlepszego narzędzia do pracy?

+0

Brzmi dość podobnie do (zastrzeżonego) programu monitorowania, który kończę. Czasami pobiera z wielu adresów URL w konfigurowalnych odstępach czasu, analizując i zapisując wyniki w bazie danych PostgreSQL. Zaimplementowałem to jako pojedynczy program w C++, który utrzymuje priorytetową kolejkę zadań pobierania (w rzeczywistości std :: map, ponieważ zadania muszą zostać usunięte, gdy monitoring jest wyłączony) i używa libcurl do pobierania. Nie zajmowałem się zbieraniem wyników, głównie dlatego, że program monitorujący i baza danych znajdują się na tym samym serwerze. Tak naprawdę nie korzystałem z platformy, więc +1 :-) –

Odpowiedz

1

Czy obejrzałeś Celery?

+0

Projekty wyglądają interesująco, choć całkiem młodo. Nie jestem też pewny co do jego solidności, opartej na FAQ: "Jednym z powodów, dla których kolejka nigdy nie zostanie opróżniona, może być to, że proces selerów jest nieaktualny, zabierając wiadomości jako zakładników. Może się to zdarzyć, jeśli seler nie został prawidłowo zamknięty." Ponadto, zależność django jest dość irytująca: "Chociaż możliwe jest korzystanie z Selera spoza Django, nadal potrzebujemy Django do uruchomienia, to jest użycie ORM i struktury pamięci podręcznej." – EmpireJones

+0

@empirejones Właściwie to wpis w FAQ jest już nieistotny. Chodziło o usunięcie aktualnie oczekujących zadań w kolejce. Pracownik może zarezerwować pewne zlecenia z góry (z powodu liczby preselekcji), jeśli pracownik odrzuci połączenie z brokerem, zadania zostaną wysłane w innym miejscu (lub do tego samego pracownika, jeśli ponownie się połączy). Powiązane błędy są teraz naprawione, okazuje się, że był to problem z wieloprocesowym przetwarzaniem i rozwidleniem. – asksol

Powiązane problemy