BlockingMonoFunctionAccessor

class BlockingMonoFunctionAccessor<T, D>(monoFunctionAccessor: MonoFunctionAccessor<T, Mono<D>>, scheduler: Scheduler = Schedulers.boundedElastic()) : MonoFunctionAccessor<T, Mono<D>>

MonoFunctionAccessor wrapper that handles blocking operations by scheduling them on a separate thread. This accessor is used for functions annotated with @Blocking to ensure they don't block the reactive event loop. It automatically switches to a bounded elastic scheduler when running on a non-blocking thread.

Parameters

T

the type of the target object

D

the type of data in the Mono

Constructors

Link copied to clipboard
constructor(monoFunctionAccessor: MonoFunctionAccessor<T, Mono<D>>, scheduler: Scheduler = Schedulers.boundedElastic())

Properties

Link copied to clipboard
open override val function: KFunction<*>

The underlying Kotlin function, delegated from the wrapped accessor.

Link copied to clipboard
open val method: Method

The underlying Java Method object for this function. This method is guaranteed to be non-null for accessible functions.

Link copied to clipboard
open override val name: String

The name of the function, inherited from the Named interface. Returns the simple name of the underlying Kotlin function.

Link copied to clipboard
open val targetType: Class<T>

The Java Class representing the type of the target object. This is derived from the declaring class of the function.

Functions

Link copied to clipboard
open operator override fun invoke(target: T, args: Array<Any?>): Mono<D>

Invokes the function and ensures blocking operations are scheduled appropriately. Uses the toBlockable extension to automatically handle thread scheduling for blocking operations.