AshWorkflow.Transformers.AddScheduler (AshWorkflow v0.6.0)

Copy Markdown View Source

Describes the workflow's scheduled work, then hands it to the selected scheduler.

Every automatic step and every timeout becomes one AshWorkflow.Scheduler.Work. The scheduler's transform/3 then adds whatever it needs to the resource — AshWorkflow.Scheduler.Oban adds AshOban triggers, another implementation might add nothing at all.

This transformer owns the translation from workflow vocabulary into Work, which is the whole reason a scheduler needs no understanding of steps, transitions or the state machine. It replaces AshWorkflow.Transformers.AddObanTriggers, which built triggers directly.

match and deadline

Each Work carries both, because the two sensible scheduling strategies read opposite ones. match selects records eligible now, for an implementation that polls. deadline is the rule for computing the exact instant, for an implementation that arms timers. For a timeout they describe the same fact: match is true exactly when deadline has passed.

Summary

Functions

after?(_)

Callback implementation for Spark.Dsl.Transformer.after?/1.

after_compile?()

Callback implementation for Spark.Dsl.Transformer.after_compile?/0.

before?(arg1)

Callback implementation for Spark.Dsl.Transformer.before?/1.

transform(dsl)

Callback implementation for Spark.Dsl.Transformer.transform/1.