Zadania w tle w Meteor
Zastanawiam się, czy jest sposób na wdrożenie tła taks, może z puli pracowników. Możesz mi pokazać kierunek, myślę o napisaniu paczki do tego?
4 answers
2017 Aktualizacja
Teraz, gdy Meteor może używać pakietów npm bezpośrednio, to pytanie sprowadza się do znalezienia pakietów zarządzania zadaniami w tle na npm (np. Kue - priorytetowa Kolejka zadań dla węzła.js wspierane przez redis), lub szukanie specyficznych dla Meteor pakietów zarządzania zadaniami, z których najbardziej niezawodny był vsivsi: jobCollection , który pozwala zaplanować stałe zadania do uruchomienia w dowolnym miejscu (serwery, klienci). Użyłem tego w 2014 do zasilania agregacji kanałów RSS w startup agregatora wiadomości finansowych.
Obecnie (2017) Pakiety do planowania zadań Meteor zawierają maxsavin/SteveJobs .Stara odpowiedź
- D3-Kolejka - minimalistyczna asynchronizacja (patrz poniżej), napisana przez autora D3 Mike Bostock
- peerlibrary: async - Owijarka Meteor dla popularnego pakietu async dla Node.js i przeglądarka . Oferuje ponad 20 funkcji (map, reduce, every, filter itp.) i obsługuje potężny przepływ sterowania (szeregowy, równoległy, wodospad itp.); Zobacz też ten przykład. Powinno stać się niepotrzebne z Meteorem 1.3 + .
- artwells: queue - priorytety, planowanie, logowanie, kolejkowanie. Kolejka wspierana przez MongoDB. Ostatnia aktualizacja: 2015-Listopad.
- super podstawowe pakiety cron: easycron . Last update: Dec 2015.
- differential: workers - Spawn Headless worker meteor processes to work on async jobs
Pakiety polecam uwaga z:
- PowerQueue - kolejkowanie zadań asynchronicznych, ograniczanie wykorzystania zasobów, ponowna próba nie powiodła się. Obsługuje kolejki podrzędne. brak harmonogramu . Brak testów, ale nifty demo . Nie nadaje się do działania przez dłuższy czas ze względu na użycie wywołań rekurencyjnych.
Unikać:
- percolatestudio: synced-cron - Zadania cron rozproszone na wielu serwerach aplikacji. Już nie utrzymywany.
- cron (warning: very stare )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-10 09:15:19
Istnieje pakiet oparty na zadaniach Cron, który może być używany do planowania zadań w określonych odstępach czasu lub datach. Oto pakiet: https://atmosphere.meteor.com/package/cron
I jeśli zajrzysz do źródła tego pakietu, zauważysz, że po prostu używają:
Meteor.setInterval( ... , delay );
Więc jeśli zapiszesz swoje zadania w bazie danych, a następnie załadujesz je w odstępach czasu podczas uruchamiania, prawdopodobnie będziesz na dobrej drodze.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-17 21:30:40
Jeśli szukasz czegoś, co jest specyficzne dla Meteor, jestem szczęśliwy, aby podzielić się tam jest nowy pakiet o nazwie Steve Jobs. Sprawia, że uruchamianie zadań w tle jest tak proste, jak wywołanie metody.
Posiada wszystkie standardowe funkcje, których można się spodziewać, takie jak uruchamianie zadania tylko raz, ponowna próba nieudanych zadań i tak dalej. Możesz dowiedzieć się więcej o tym na Githubie:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-27 12:14:18
Domyślam się, że odpowiednie wsparcie jest na ich mapie drogowej, ale w międzyczasie udało mi się je uruchomić w hakerski sposób poprzez setInterval
. Zobacz pakiet cron-tick .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-25 14:40:11