Gdzie w kodzie mikroserwisu (pattern MVC) umieścić pętle która wykonuje się co X czasu.

0

Hej, W ramach nauki piszę prostą apkę opartą o mikroserwisy. Problematyczny mikroserwis służy do sprawdzania czy strony zapisane w DB są online. Mam w serwisie GET/POST/PUT, wszystko działa jak należy, Przy zapisie dokonuję pierwszego sprawdzenia jaki STATUS_CODE zwraca strona.

Pytanie brzmi, gdzie uruchamiać (w pętli, co np. 30 sekund) funkcję która za zadanie ma pobierać dane z bazy danych, wykonywać kilka innych funkcji na podstawie tych danych a następnie zapisać zmienione dane do bazy. Jak powinienem to zrobić? Myślałem przez chwilę o użycia crona ale nie wydaje mi się to dobre rozwiązanie.

Całość jest napiana w Go, ale to raczej nie ma znaczenia.

0

W sumie to chyba rozwiązałem problem. Napiszę funkcję opartą o Tickery i wywołąm ją w main. Myślę, że to zda egzamin.

EDIT: Nadal zostaje problem gdzie umieścić taki fragment kodu, myślę, że katalog "utils" daje radę, to chyba nie jest nic powiązanego stricte z MVC. Dobrze myśle?

3
  1. Nie ma to nic wspólnego z MVC
  2. Użyj jakiegoś schedulera który będzie periodycznie odpalać takie akcje.
2

Czemu nie zrobić z tego oddzielnego mikroserwisu?

0

ja taki kod wrzucam do kodu serwisu. To, żeby wykonywało się co jakiś czas to wymóg, jakby nie patrzeć, biznesowy.

0

@no_solution_found: no wiadomo, że to wymóg biznesowy. Ale czemu uważasz, że to jest argument za tym, żeby nie oddzielać background joba od serwisu obsługującego żądania?

0

@somekind: myślałem o tym, ale to tak naprawdę będą 2 mikroserwisy które rozmawiają z tą samą baza danych, nie wiem na ile to ma sens. Założyłem że jedna baza danych to jeden mikroserwis. Żeby nie mieć 15 mini projektów które i tak robią wszystko na jednej bazie danych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1