mule/engines/inline
A testing-specific engine used when Mule starts with testing: TestingInline — every insert executes its job synchronously in the
inserting process and returns the TERMINAL job without persistence.
Mirrors Oban.Engines.Inline (engines/inline.ex).
Hazard (true in Elixir too): a worker timeout arms timer:exit_after
in the CALLING process, so a timed-out inline job kills the inserting
process — usually the test process.
Values
pub fn fabricated_id() -> Int
A positive monotonic erlang:unique_integer — the fabricated id
unpersisted jobs carry (parity §9), ordered by construction order. Shared
with mule/testing’s build_job, which fabricates ids the same way.
pub fn new(
name name: String,
node node: String,
registry registry: worker_registry.Registry,
) -> engine.Engine
Build the inline engine. mule.start calls this with the spec’s
name/node/registry (and wraps it in telemetry.instrument_engine, so the
engine:insert_job span ENCLOSES the synchronous execution and the job
start/stop|exception events nest inside it, from the inserting
process — the same nesting Elixir gets from the Engine facade span).
pub fn no_ack_config(
name name: String,
node node: String,
registry registry: worker_registry.Registry,
engine engine: engine.Engine,
) -> config.Config
The internal config the no-persistence executor paths run under
(ack: False): the engine should be a engine.panic_engine canary since
acks never run, the notifier is a no-op, and the always-leader peer is
never read. Shared with mule/testing’s perform_job, which executes
jobs the same way.