Current section
Files
Jump to
Current section
Files
src/gabsurd@queue.erl
-module(gabsurd@queue).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gabsurd/queue.gleam").
-export([create/2, create_with_mode/3, drop/2, list/1]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Queue management for the Absurd durable workflow system.\n"
" Provides high-level functions for creating, dropping, and listing queues.\n"
).
-file("src/gabsurd/queue.gleam", 10).
?DOC(" Create a new queue with default (unpartitioned) storage mode.\n").
-spec create(gabsurd@client:db(), binary()) -> {ok, nil} |
{error, gabsurd@client:gabsurd_error()}.
create(Db, Queue_name) ->
gabsurd@client:exec(Db, gabsurd@sql:create_queue(Queue_name)).
-file("src/gabsurd/queue.gleam", 15).
?DOC(" Create a new queue with a specific storage mode.\n").
-spec create_with_mode(gabsurd@client:db(), binary(), binary()) -> {ok, nil} |
{error, gabsurd@client:gabsurd_error()}.
create_with_mode(Db, Queue_name, Storage_mode) ->
gabsurd@client:exec(
Db,
gabsurd@sql:create_queue_with_mode(Queue_name, Storage_mode)
).
-file("src/gabsurd/queue.gleam", 24).
?DOC(" Drop a queue and all its associated tables.\n").
-spec drop(gabsurd@client:db(), binary()) -> {ok, nil} |
{error, gabsurd@client:gabsurd_error()}.
drop(Db, Queue_name) ->
gabsurd@client:exec(Db, gabsurd@sql:drop_queue(Queue_name)).
-file("src/gabsurd/queue.gleam", 29).
?DOC(" List all queue names.\n").
-spec list(gabsurd@client:db()) -> {ok, list(binary())} |
{error, gabsurd@client:gabsurd_error()}.
list(Db) ->
gleam@result:'try'(
gabsurd@client:query_many(Db, gabsurd@sql:list_queues()),
fun(Rows) ->
{ok,
begin
_pipe = Rows,
gleam@list:map(
_pipe,
fun(Row) -> erlang:element(2, Row) end
)
end}
end
).