LINUX.ORG.RU

vertx выполнение «тяжелых» задач

 , , , ,


0

1

Всем привет, я только начал осваивать vertx. Задача: есть апи, через апи я могу начать выполнение задачи, которая требует не мало процессорных ресурсов, собственно это практически все что умеет данное апи. Вопрос вот в чем, где подобные задачи следует выполнять? Стоти ли деплоить отдельные Verticle, или можно просто в какойнить пул ее кинуть и пусть она там висит. Главное чтобы апи при этом не подвисало, т.е. чтобы при вызове метода мне не приходилось ждать по несколько секунд, а то и минут, пока задача выполнится. Киньте пару ссылок, где про это можно почитать более детально плиз.

★★★

Что такое vertx не в курсе, но создаёшь thread/actor или что там ещё, выполняющее твою долгую операцию, генерируешь uuid, кидаешь это в hashmap (или в базу данных, если hashmap недостаточно будет) вместе со ссылкой на thread/future/task или что там ещё.

Клиенту приходит этот uuid, и он уже решает, как обрабатывать - либо long polling, либо раз в какие-то несколько секунд/миллисекунд, либо подписку на websocket - как фантазия позволит.

BattleCoder ★★★★★
()
8 февраля 2019 г.
Ответ на: комментарий от Int64

Такой код нужно выполнять в блоке vertx.executeBlocking(Handler<Future<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler). Вызов данного метода поместит задачу в workerPool vertx'а

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.