2010-08-16 18 views
6

ja szukam WorkQueue API oferuje następujące funkcje:Czy istnieje wyrafinowany interfejs API Java WorkQueue?

  • java.util.Queue kompatybilne
  • oferty (opcjonalnie) Set-semantyczny
  • jedno- i proces periodyczny
  • współbieżności (oczywiście)
  • planowania
  • inne zasady przetwarzania
    • czekać aż do następnego zaplanowanego wykonania
    • wstępnie procesu, jeśli wielkość partii spotkał
    • opóźnienie w przetwarzaniu (minimalny czas w kolejce, zanim zostaną przetworzone)
  • trwałości (opcjonalnie)

Nie istnieje wiele ciekawych implementacji w jdk, np java.util.DelayQueue, którego mogłem użyć. Chciałem tylko upewnić się, że nie wymyślam koła.

Odpowiedz

2

Nadal szukasz odpowiedzi, aby zaakceptować?

Myślę, że najlepiej będzie zaspokoić Twoje potrzeby, korzystając ze struktury wykonawczej java.util.concurrent. Zobacz API (here's a good start). Istnieje doskonała społeczność wsparcia, którą można znaleźć pod adresem concurrency-interest web site. Jeśli jesteś w martwych drzewach, Java Concurrency in Practice (JCiP) zapewnia doskonały zasób.

Struktura executora umożliwia tworzenie zadań (w postaci Runnables lub Callables), zapewnia kilka schematów synchronizacji lub innych zadań w stosunku do siebie nawzajem.

Wreszcie pojawiająca się infrastruktura ForkJoin (FJ) jest całkiem użyteczna i może odpowiadać Twoim potrzebom. API to here, good paper is here i introductory article here.

Mam nadzieję, że to pomoże.

JA

3

Wystarczy popatrzeć na Quartz Job Scheduler API

kwarcowy Funkcje: http://www.quartz-scheduler.org/overview/features.html

nie jestem pewien o zgodności java.util.Queue. Zapewnia jednak większość funkcji związanych z planowaniem i wykonywaniem zadań.

+1

Mechanizm kwarcowy służy do planowania opóźnionych zadań, a nie tego szukałem.Jeśli chodzi o harmonogram i opóźnienie, których potrzebuję, na pewno pozostanę przy '' ScheduledExecutor' 'java, który zapewnia lepszy sposób działania API niż kwarc. – whiskeysierra

0

Mimo że nie ma żadnej funkcji planowania, JDK ma wartość java.util.concurrent.SynchronousQueue, która może być przydatna.

1

Krótka i prosta odpowiedź - nie. Musisz wdrożyć własne lub po prostu będziesz służyć jako darmowy tester do eksperymentów innych osób. Tak więc przynajmniej poświęcisz czas na stworzenie systemu dokładnie dla twoich potrzeb, znając wszystkie kluczowe części i będąc w pełnej kontroli, zamiast przyjmować dużą i nieznaną zależność.

Powiązane problemy