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
Callback implementation for Spark.Dsl.Transformer.after?/1.
Callback implementation for Spark.Dsl.Transformer.after_compile?/0.
Callback implementation for Spark.Dsl.Transformer.before?/1.
Callback implementation for Spark.Dsl.Transformer.transform/1.
Functions
Callback implementation for Spark.Dsl.Transformer.after?/1.
Callback implementation for Spark.Dsl.Transformer.after_compile?/0.
Callback implementation for Spark.Dsl.Transformer.before?/1.
Callback implementation for Spark.Dsl.Transformer.transform/1.