View Source AshOban (ash_oban v0.2.4)

Tools for working with AshOban triggers.

Summary

Functions

Builds a specific trigger for the record provided, but does not insert it into the database.

Alters your oban configuration to include the required AshOban configuration.

Runs a specific trigger for the record provided.

Schedules all relevant jobs for the provided trigger or scheduled action

Runs the schedulers for the given resource, domain, or otp_app, or list of resources, domains, or otp_apps.

Types

@type result() :: %{
  discard: non_neg_integer(),
  cancelled: non_neg_integer(),
  success: non_neg_integer(),
  failure: non_neg_integer(),
  snoozed: non_neg_integer(),
  queues_not_drained: [atom()]
}
@type triggerable() ::
  Ash.Resource.t() | {Ash.Resource.t(), atom()} | Ash.Domain.t() | atom()

Functions

@spec authorize?() :: boolean()
Link to this function

build_trigger(record, trigger, opts \\ [])

View Source

Builds a specific trigger for the record provided, but does not insert it into the database.

Options

  • :actor - the actor to set on the job. Requires configuring an actor persister.

All other options are passed through to Oban.Worker.new/2

Link to this function

config(domains, base, opts \\ [])

View Source

Alters your oban configuration to include the required AshOban configuration.

Options

Link to this function

do_schedule_and_run_triggers(resources_or_domains_or_otp_apps, opts)

View Source
Link to this function

lookup_actor(actor_json)

View Source
@spec lookup_actor(actor_json :: any()) :: any()
Link to this function

run_trigger(record, trigger, opts \\ [])

View Source

Runs a specific trigger for the record provided.

Options

  • :actor - the actor to set on the job. Requires configuring an actor persister.

All other options are passed through to Oban.Worker.new/2

Link to this function

schedule(resource, trigger, opts \\ [])

View Source

Schedules all relevant jobs for the provided trigger or scheduled action

Options

:actor - the actor to set on the job. Requires configuring an actor persister.

Link to this function

schedule_and_run_triggers(resources_or_domains_or_otp_apps, opts \\ [])

View Source
@spec schedule_and_run_triggers(
  triggerable() | [triggerable()],
  keyword()
) :: result()

Runs the schedulers for the given resource, domain, or otp_app, or list of resources, domains, or otp_apps.

Options:

  • drain_queues? - Defaults to false, drains the queues after scheduling. This is primarily for testing
  • queue, with_limit, with_recursion, with_safety, with_scheduled - passed through to Oban.drain_queue/2, if it is called
  • scheduled_actions? - Defaults to false, unless a scheduled action name was explicitly provided. Schedules all applicable scheduled actions.
  • triggers? - Defaults to true, schedules all applicable scheduled actions.
  • actor - The actor to schedule and run the triggers with
  • oban - The oban module to use. Defaults to Oban

If the input is:

  • a list - each item is passed into schedule_and_run_triggers/1, and the results are merged together.
  • an otp_app - each domain configured in the ash_domains of that otp_app is passed into schedule_and_run_triggers/1, and the results are merged together.
  • a domain - each reosurce configured in that domain is passed into schedule_and_run_triggers/1, and the results are merged together.
  • a tuple of {resource, :trigger_name} - that trigger is scheduled, and the results are merged together.
  • a resource - each trigger configured in that resource is scheduled, and the results are merged together.
Link to this function

store_actor(args, actor)

View Source
@spec store_actor(args :: map(), actor :: any()) :: any()