Typed scheduler request for one domain-owned slow effect.
Requests contain data only. Executable closures and document binaries do not
enter scheduler queues; the domain module named by handler owns execution.
Summary
Types
Scheduler-local request identity.
Optional request metadata supplied to the scheduler.
Stable identity for the mutated or calculated resource.
Functions
Combines two queued requests through their shared domain handler.
Builds a scheduler request for a typed effect and optional metadata.
Runs the request through its domain handler.
Types
@type id() :: reference()
Scheduler-local request identity.
@type option() :: {:operation_id, MingaEditor.State.Operation.id()} | {:source, Minga.Extension.ContributionCleanup.contribution_source() | nil} | {:timeout_ms, pos_integer()} | {:activity, atom()}
Optional request metadata supplied to the scheduler.
@type resource() :: term()
Stable identity for the mutated or calculated resource.
@type t() :: %MingaEditor.Effect.Request{ activity: atom() | nil, effect: struct(), handler: module(), id: id(), operation_id: MingaEditor.State.Operation.id() | nil, policy: MingaEditor.Effect.Policy.t(), resource: resource(), source: Minga.Extension.ContributionCleanup.contribution_source() | nil, timeout_ms: pos_integer() | nil }
Functions
Combines two queued requests through their shared domain handler.
@spec new( struct(), resource(), MingaEditor.Effect.Policy.t(), [option()] | MingaEditor.State.Operation.id() ) :: t()
Builds a scheduler request for a typed effect and optional metadata.
Runs the request through its domain handler.