![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 2 Dołączył: 2.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Mam pytanie odnośnie Node.js mianowicie mam funkcję która jest odświeżana co 20 sekund, w niej jest pętla która wywołuje kolejną funkcję, której zadanie jest przeanalizować JSON-a otrzymanego z serwerka zewnętrznego i wrzucić do DB. Zdarza się jednak czasami taka sytuacja, że serwer troszke przymuli i JSON nie zdąży w tych 25 sekundach być wrzucony do DB a skrypt nie kończy go tylko od nowa zaczyna wykonywać skrypt. czy ktoś wie jak temu zapobieć, jak najlepiej może rozbijać to na kolejne wątki tak by każdy JSON został do końca przeparsowany i nie ustawiać ich kolejki która może się nie wiadomo ile wydłużyć. Z góry dziękuje za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Pewnie używasz setInterval, a powinieneś setTimeout wywoływanego po zakończeniu poprzedniej operacji.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 2 Dołączył: 2.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
a jak pogodzić sprawę gdy wykonują się też inne funkcje i chciałbym aby każda żyła własnym życiem by setTimeout nie spowodował tego że zacznie mielić jedną funkcję nie kończąc 2. niestety wszystkie 3 są jednakowo ważne bo tak by można pokombinować z priorytetami (gdy jedna sie robi to reszte wstrzymaj itp)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Może pokaż jaki masz kod obecnie. setTimeout raczej nie będzie mielił kolejnej funkcji przed zakończeniem poprzedniej.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
jeśli tych danych masz naprawdę duuużo to wąskim gardłem jest baza danych... spróbuj dane dodać w jednej sesji/transakcji... jeśli dane mają być unikalne i ma to być sprawdzane by nie sprawdzać co każdy insert dodaj dane w jednej transakcji do tabeli tymczasowej po czym wykonaj operację ilorazu na tabelach jednym zapytaniem...
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co rozumiem, to chcesz aby te "Zadania" były uruchamiane nie zaleznie, ale z jednej aplikacji.
Poczytaj o https://nodejs.org/api/cluster.html Bawiłem się tym przy kilku aplikacjach. Sporo nauki i do ogarnięcia, poziomu trudności momentami hard, zwłaszcza jak jeszcze sockety dodawałem do tego... ale warto ![]() powodzenia! -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 01:49 |