Packages
ash_oban
0.8.5
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0-rc.1
0.8.0-rc.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.6
0.2.5
0.2.4
0.2.3
0.2.3-rc.1
0.2.3-rc.0
0.2.2
0.2.1
0.2.0
0.1.14
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
The extension for integrating Ash resources with Oban.
Current section
Files
Jump to
Current section
Files
lib/errors/cancel_job.ex
# SPDX-FileCopyrightText: 2023 ash_oban contributors <https://github.com/ash-project/ash_oban/graphs/contributors>
#
# SPDX-License-Identifier: MIT
defmodule AshOban.Errors.CancelJob do
@moduledoc """
Raise or return this error from an action to cancel the Oban job.
Cancelling stops all retries and marks the Oban job as cancelled. Use this
when you determine that further processing would be permanently invalid —
for example, when the record has been deleted or the job's preconditions
can never be met.
Works from both the main action and the `on_error` action of a trigger, as
well as from scheduled actions.
## Fields
* `reason` - any term describing why the job was cancelled
## Examples
# Via raise (works anywhere in action code):
raise AshOban.Errors.CancelJob, reason: :record_deleted
# Via add_error (idiomatic inside a change function):
Ash.Changeset.add_error(changeset, AshOban.Errors.CancelJob.exception(reason: :permanently_invalid))
# Via error tuple return:
{:error, AshOban.Errors.CancelJob.exception(reason: :invalid_state)}
"""
use Splode.Error, fields: [:reason], class: :framework
def message(%{reason: reason}) do
"Job cancelled: #{inspect(reason)}"
end
end