Class OffloadTask
java.lang.Object
ru.pathcreator.pyc.rpc.core.internal.OffloadTask
- All Implemented Interfaces:
Runnable
Переиспользуемая задача для выполнения серверных обработчиков в OFFLOAD-режиме.
Задача хранит все данные, необходимые для вызова обработчика, и после выполнения возвращается в пул. Такой подход убирает создание lambda-объекта или synthetic-класса на каждый входящий запрос.
Reusable task for executing server handlers in OFFLOAD mode. The task keeps all data required to invoke a handler and returns itself to a pool after execution, avoiding per-request lambda allocation.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceCallback с телом выполнения offload-задачи.static final classПул переиспользуемыхOffloadTaskэкземпляров. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidinit(OffloadTask.Body body, int messageTypeId, long correlationId, org.agrona.concurrent.UnsafeBuffer payloadCopy, int payloadLength, Object handlerEntry, Object executionState, OffloadTask.Pool ownerPool) Инициализирует задачу перед передачей в executor.voidrun()Выполняет задачу и возвращает ее в пул после завершения.
-
Constructor Details
-
OffloadTask
public OffloadTask()Создает пустую offload-задачу для последующей инициализации.Creates an empty offload task for later initialization.
-
-
Method Details
-
init
public void init(OffloadTask.Body body, int messageTypeId, long correlationId, org.agrona.concurrent.UnsafeBuffer payloadCopy, int payloadLength, Object handlerEntry, Object executionState, OffloadTask.Pool ownerPool) Инициализирует задачу перед передачей в executor.Initializes the task before it is submitted to an executor.
- Parameters:
body- callback выполнения / execution callbackmessageTypeId- идентификатор типа сообщения / message type identifiercorrelationId- идентификатор корреляции запроса / request correlation identifierpayloadCopy- копия payload / payload copypayloadLength- длина payload в байтах / payload length in byteshandlerEntry- запись обработчика / handler entryexecutionState- reusable execution state for the taskownerPool- пул, в который вернуть задачу / pool to return the task to
-
run
-