Packages
oban
1.1.0
2.23.0
2.22.1
2.22.0
2.21.1
2.21.0
2.20.3
2.20.2
2.20.1
2.20.0
2.19.4
2.19.3
2.19.2
2.19.1
2.19.0
2.18.3
2.18.2
2.18.1
2.18.0
2.17.12
2.17.11
2.17.10
2.17.9
2.17.8
2.17.7
2.17.6
2.17.5
2.17.4
2.17.3
2.17.2
2.17.1
2.17.0
2.16.3
2.16.2
2.16.1
2.16.0
2.15.4
2.15.3
2.15.2
2.15.1
2.15.0
2.14.2
2.14.1
2.14.0
2.13.6
2.13.5
2.13.4
2.13.3
2.13.2
2.13.1
2.13.0
2.12.1
2.12.0
2.11.3
2.11.2
2.11.1
2.11.0
2.10.1
2.10.0
retired
2.9.2
2.9.1
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.1
2.6.0
2.5.0
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.0
2.1.0
2.0.0
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
1.2.0
1.1.0
1.0.0
1.0.0-rc.2
1.0.0-rc.1
0.12.1
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Robust job processing, backed by modern PostgreSQL, SQLite3, and MySQL.
Current section
Files
Jump to
Current section
Files
lib/oban/beat.ex
defmodule Oban.Beat do
@moduledoc false
use Ecto.Schema
import Ecto.Changeset
@type t :: %__MODULE__{
node: binary(),
queue: binary(),
limit: pos_integer(),
paused: boolean(),
running: list(pos_integer()),
inserted_at: DateTime.t(),
started_at: DateTime.t()
}
@primary_key false
schema "oban_beats" do
field :node, :string
field :queue, :string
field :nonce, :string
field :limit, :integer
field :paused, :boolean, default: false
field :running, {:array, :integer}, default: []
field :inserted_at, :utc_datetime_usec
field :started_at, :utc_datetime_usec
end
@permitted ~w(node queue nonce limit paused running inserted_at started_at)a
@required ~w(node queue nonce limit paused running started_at)a
@spec new(map()) :: Ecto.Changeset.t()
def new(params) when is_map(params) do
%__MODULE__{}
|> cast(params, @permitted)
|> validate_required(@required)
|> validate_length(:node, min: 1, max: 128)
|> validate_length(:nonce, min: 1, max: 16)
|> validate_length(:queue, min: 1, max: 128)
|> validate_number(:limit, greater_than: 0)
end
end