Aktywne Wpisy
Notrix +3
Geralt678 +8
Ja się poddaje blackpill dał mi znowu popalić i powiedział hola Przegrywie nie tym razem. Więc od początku znowu spróbowałem swoich sił w realu, spodobała mi się jedna różowa 5-6/10 sprzedawała pamiątki no to podbiłem, do niej gadka szmatką komplet noi spytałem o pracę rozmowa uśmiechy wymiana spojrzeń pytam i kiedy ma wolne ona mówi w weekend no to zaproponowałem kawę a ta uśmiechnęła się i powiedziała że nie może innym razem
1) Bierze dane A
2) Wczytuje z zewnętrznego źródła dodatkowe dane (nazwijmy je B)
3) Na podstawie tych dodatkowych danych B ustala dane C1, C2, C3
4) Na podstawie danych C1, C2, C3 odpytuje zewnętrzne źródło po dane D
5) Składa to wszystko w całość i produkuje "zbundlowaną paczkę danych"
Dobra, to teraz przeszkody:
* Dostęp do zewnętrznych zasobów w punktach (2) i (4) musi być synchroniczny i odbywać się co najwyżej 1 request per 1 sekundę (lub jeszcze wolniej) - występuje jakieś kolejkowanie
* Punkt (3) jest czaschłonny i każdy z danych C1, C2 i C3 są osobnymi danymi wyliczanymi z tego samego źródła
* Chciałbym przewalić jak najwięcej rekordów w jak najkrótszym czasie - częsci które mogą być asynchroniczne punkt (3) - wyliczanie danych - powinny być asynchroniczne
* Chciałbym aby sam proces danych był odporny na brak odpowiedzi z zewnętrznych źródeł czy złą odpowiedź (ponowne wysyłanie requestów do nich)
* Chciałbym mieć metryki jak szybko dane przepływają i co zabiera najwięcej czasu - do optymalizacji kodu.
Zastanawiam się nad użyciem jakieś kolejki (choć nie wiem czy to nie overkill). Dodatkowo nie wiem czy jakaś kolejka jest potrzebna - to jest w sumie problem architekturalny.
#programowanie #nodejs #algorytmy #pomocy
Coś cinko z odpowiedziami.
2. Zastosuj aktorów, niech mediator pobiera dane z B i rozdzieli zadania na 3 osobne wątki
3. Walidacja danych z requestów( prawdopodobnie wiesz jaką mają mieć strukturę) więc, jeżeli coś z nimi jest nie tak to odpytujesz się jeszcze raz.
4. Logger do mierzenia czasu?