Платформа для блокировки/неблокирования выполнения задач на Java (CompletableFutures или что-то еще?)JAVA

Программисты JAVA общаются здесь
Anonymous
Платформа для блокировки/неблокирования выполнения задач на Java (CompletableFutures или что-то еще?)

Сообщение Anonymous »

Я работаю над JAVA-программой, которая должна запускать очень простой рабочий процесс, состоящий из 5 задач и выполняемых одна за другой:

Код: Выделить всё

Workflow:   Task(A) -> Task(B) -> Task(C) -> Task(D) -> Task(E)
-------    -------
Этот рабочий процесс запускается каждый раз, когда моя программа получает входные данные.
Единственная трудность, с которой я сталкиваюсь, заключается в том, что рабочий процесс может блокироваться на 3-й и 4-й задачах
Действительно,
  • вызывает/использует Service(C), который может быть на мгновение отключен
  • вызывает/использует Service(D), который также может быть на мгновение отключен
Вот поведение, которого я хочу достичь:
  • когда служба не работает (

    Код: Выделить всё

    Service(C)
    или Service(D)) текущий рабочий процесс должен прерваться
  • при получении нового ввода, когда служба не работает (

    Код: Выделить всё

    Service(C)
    или Service(D)), все задачи рабочего процесса должны выполняться до тех пор, пока не будет заблокирована задача
  • , когда снова отключится служба (и задача разблокируется), все прерванные выполнения должны быть немедленно перезапущены.
Конечно, я могу разработать свою собственную структуру для достижения того, что мне нужно, но я хотел бы использовать существующую структуру. (желательно в JDK), чтобы извлечь выгоду из чего-то надежного и проверенного
Я обнаружил, что начиная с Java 8 ( очень старый: извините, что не в курсе) Java предоставляет CompletableFuture, который кажется очень мощным... однако мне он пока не очень нравится
  • Можно ли добиться желаемого поведения с помощью JAVA CompletableFuture?
  • или мне следует использовать другую платформу? Если да, то какой?
  • Каким бы ни был ответ, я был бы очень признателен за простые примеры.
Спасибо за помогаю

Подробнее здесь: https://stackoverflow.com/questions/786 ... blefutures

Вернуться в «JAVA»