Class OffloadTask

java.lang.Object
ru.pathcreator.pyc.rpc.core.internal.OffloadTask
All Implemented Interfaces:
Runnable

public final class OffloadTask extends Object implements 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 Classes
    Modifier and Type
    Class
    Description
    static interface 
    Callback с телом выполнения offload-задачи.
    static final class 
    Пул переиспользуемых OffloadTask экземпляров.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Создает пустую offload-задачу для последующей инициализации.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    init(OffloadTask.Body body, int messageTypeId, long correlationId, org.agrona.concurrent.UnsafeBuffer payloadCopy, int payloadLength, Object handlerEntry, Object executionState, OffloadTask.Pool ownerPool)
    Инициализирует задачу перед передачей в executor.
    void
    run()
    Выполняет задачу и возвращает ее в пул после завершения.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 callback
      messageTypeId - идентификатор типа сообщения / message type identifier
      correlationId - идентификатор корреляции запроса / request correlation identifier
      payloadCopy - копия payload / payload copy
      payloadLength - длина payload в байтах / payload length in bytes
      handlerEntry - запись обработчика / handler entry
      executionState - reusable execution state for the task
      ownerPool - пул, в который вернуть задачу / pool to return the task to
    • run

      public void run()
      Выполняет задачу и возвращает ее в пул после завершения.

      Runs the task and returns it to the pool after completion.

      Specified by:
      run in interface Runnable