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.

Search Document