JobQueue - pomysły

0

Witajcie, przychodzę do Was z krótkim pytaniem.
Mam REST serwis do którego lecą taski i są od razu wykonywane. Chciałbym je teraz wrzucać w kolejkę i następnie odpalać tylko gdy poprzedni zakończy pracę, z pulą np. na 3 działające jednocześnie taski. Polecacie jakieś gotowe rozwiązania i przykłady jak mógłbym je użyć, czy zaimplementować po prostu ją samemu z użyciem ExecutorService i javowej Queue?

1

Wbrew modzie na Springa 1), osobiście lubię i szanuję rzeczy z "nowoczesnego JEE" jak sobie pewien wybór (tzn odcięcie się od staroci) nazywam.
Twój post jest bardzo ogólny, aby to sobie umiał w oczach zobrazować, zanim kawa się we mnie rozpuści.

  1. projekt masz czysto poza-springowy? Czy te RESTy robisz? Nie zasygnalizowałeś jego użycia...
    Mieszać bym nie zalecał.
2

Zrobiłbym to tak jak piszesz ewentualnie innym ThreadPoolem: https://www.baeldung.com/thread-pool-java-and-guava Pytanie czy wybrałeś kolejkę bo zależy Ci na kolejności czy tak ło, rzuciłeś.

1

.. jak ze springiem ....

Bardziej bym preferował "cięższą" kolejkę komunikatów out of process (chyba Rabbit MQ jest defaultowy dla Springa???) niż z biblioteki standardowej in-ram.
Z powodów moich własnych, nie muszą być Twoimi.

  • zawartość kolejki po restarcie (potrzebna ci lub nie)
  • znacznie większa ilość parametrów/kontroli, które mogą się przydać.
  • podatność na cięcie / uS itd
1

Możesz zrobić tak jak napisałeś - taski siedzą w bazie i masz N workerów, którzy sobie je rezerwują i wykonują. Da się to skalować na wiele instancji nawet.

1

TL;DR
U mnie w systemie byly 3 rodzaje kolejek:

  • message queue
  • work queue
  • job queue

To ostatnie z zaleznosciami od innych zadan, mozliwoscia wznowienia i restartu, sledzeniem czasu wykonania, aktualnym stanem.

Kazdy poziom to nadbudowka na poprzedni przy czym job queue w zalozeniu moze byc tak wolne ze oparte o zwykla baze danych ivwrzucac zadania do work queue gdy sa gotowe.

Wg powyzszej listy Work queue to kolejka zadan aktywnych ktore moga byc rozrzucane na iles work nodow.

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